本文主要为您介绍网络管理中的常见问题。

  • 旧版本CCM如何支持SLB重命名
  • 如何选择Kubernetes集群网络插件:Terway和Flannel
  • 如何手动安装alicloud-application-controller

旧版本CCM如何支持SLB重命名

Cloud Controller Manager 组件 v1.9.3.10后续版本创建的SLB支持自动打TAG从而可以重命名,而 v1.9.3.10及之前的版本,您需要手动给该SLB打上一个特定的TAG从而支持SLB重命名。

说明

  • 只有 Cloud Controller Manager 组件 v1.9.3.10及之前版本创建的SLB才需要手动打TAG的方式来支持重命名。
  • service类型为Loadbalancer。

  1. 登录到Kubernetes集群master节点,参见 通过 kubectl 连接 Kubernetes 集群。
  2. 执行 # kubectl get svc -n ${namespace} ${service}命令,查看该service类型及IP。service类型
    说明 您需要将${namespace}与${service}替换为所选集群的命名空间及服务名称。

  3. 执行以下命令,生成该SLB所需要的TAG。
    # kubectl get svc -n ${namespace} ${service} -o jsonpath="{.metadata.uid}"|awk -F "-" '{print "kubernetes.do.not.delete: "substr("a"$1$2$3$4$5,1,32)}'

    tag

  4. 登录负载均衡控制台根据步骤2中所获取的IP,在其所在的region搜索到该SLB。
  5. 根据步骤3生成的KEY值和 VALUE值(分别对应上图的1和2),为该SLB打上一个TAG。详情请参见添加标签。

如何选择Kubernetes集群网络插件:Terway和Flannel

下面为您详细介绍容器服务在Kubernetes集群创建时提供的两种网络插件:Terway和Flannel,为您在创建集群选择网络插件时提供参考。

在创建Kubernetes集群时,阿里云容器服务提供两种网络插件:Terway和Flannel:

  • Flannel:使用的是简单稳定的社区的Flannel CNI插件,配合阿里云的VPC的高速网络,能给集群高性能和稳定的容器网络体验,但功能偏简单,支持的特性少,例如:不支持基于Kubernetes标准的Network
    Policy。
  • Terway:是阿里云容器服务自研的网络插件,功能上完全兼容Flannel,支持将阿里云的弹性网卡分配给容器,支持基于Kubernetes标准的NetworkPolicy来定义容器间的访问策略,支持对单个容器做带宽的限流。对于不需要使用Network
    Policy的用户,可以选择Flannel,其他情况建议选择Terway。了解更多Terway网络插件的相关内容,请参见如何使用Terway网络插件。

如何手动安装alicloud-application-controller

在阿里云容器服务中,1.10.4及以上版本默认安装alicloud-application-controller,来提供一种基于 CRD 的分批发布的能力。

说明 Kubernetes最新集群已经默认安装alicloud-application-controller,旧版本集群可以通过手动安装的方式部署alicloud-application-controller,要求Kubernetes集群版本不低于为v1.9.3。

您可通过kubectl create -f alicloud-application-controller.yml命令部署alicloud-application-controller,在alicloud-application-controller.yml中输入如下的编排模板。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: alicloud-application-controller
  labels:
    owner: aliyun
    app: alicloud-application-controller
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      owner: aliyun
      app: alicloud-application-controller
  template:
    metadata:
      labels:
        owner: aliyun
        app: alicloud-application-controller
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ''
    spec:
      tolerations:
      - effect: NoSchedule
        operator: Exists
        key: node-role.kubernetes.io/master
      - effect: NoSchedule
        operator: Exists
        key: node.cloudprovider.kubernetes.io/uninitialized
      containers:
        - name: alicloud-application-controller
          image: registry.cn-hangzhou.aliyuncs.com/acs/aliyun-app-lifecycle-manager:0.1-c8d5da8
          imagePullPolicy: IfNotPresent
      serviceAccount: admin