Terway网络场景下,当虚拟交换机(VSwitch)IP资源不足时,您需要对VSwitch扩容。本文介绍如何新增虚拟交换机以增加新的IP地址资源供ACK集群使用。

虚拟交换机VSwitch的IP资源不足特征

Terway网络场景下,VSwitch IP资源不足的特征如下:
  • 如果您发现Pod创建不成功,且状态显示为ContainerCreating,执行以下命令查看Pod所在节点的Terway的日志。
    kubectl logs --tail=100 -f terway-eniip-zwjwx -n kube-system -c terway

    若系统输出类似以下错误信息,说明该节点的Terway所使用的VSwitch没有空余的IP地址,Pod会因为没有IP资源而一直处于ContainerCreating状态。

    time="2020-03-17T07:03:40Z" level=warning msg="Assign private ip address failed: Aliyun API Error: RequestId: 2095E971-E473-4BA0-853F-0C41CF52651D Status Code: 403 Code: InvalidVSwitchId.IpNotEnough Message: The specified VSwitch \"vsw-AAA\" has not enough IpAddress., retrying"
  • 登录专有网络管理控制台,在控制台左侧导航栏中,单击交换机查看该VSwitch的可用IP数为0。

新增虚拟交换机VSwitch

您可通过执行以下操作步骤新增VSwitch。

  1. 专有网络管理控制台创建新的VSwitch,该VSwitch必须与IP资源不足的VSwitch在同一个区域。具体关于如何创建VSwitch,请参见使用交换机
    说明 因Pod密度越来越大,为了满足Pod对IP地址日益增长的需求,建议您创建给Pod使用的VSwitch的网络位小于等于19,即网段中至少包含8192个IP地址。
  2. 执行以下命令,添加VSwitch到Terway的ConfigMap配置中。
    kubectl edit cm eni-config -n kube-system

    添加VSwitch具体样例如下:

    eni_conf: |
    {
    "version": "1",
    "max_pool_size": 25,
    "min_pool_size": 10,
    "vswitches": {"cn-shanghai-f":["vsw-AAA", "vsw-BBB"]},
    "service_cidr": "172.21.0.0/20",
    "security_group": "sg-CCC"
    }

    样例中添加vsw-BBBVSwitches部分,其中vsw-AAA是已经存在的且IP资源不足的VSwitch。

  3. 可选:升级Terway版本。
    如果Terway版本不是最新的,您需将Terway版本升到最新版本,否则跳转此步骤。
    1. 登录容器服务管理控制台
    2. 在控制台左侧导航栏中,单击集群
    3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
    4. 在控制台左侧导航栏中,选择运维管理 > 组件管理,然后在组件管理页面,单击网络页签。
    5. 网络页签中选择需要升级的目标Terway组件,单击升级
  4. 执行以下命令删除全部Terway Pod后,系统自动重建全部Terway Pod。
    • 针对ENI多IP场景,执行以下命令删除全部Terway Pod:

      kubectl delete -n kube-system pod -l app=terway-eniip
    • 针对ENI单IP场景,执行以下命令删除全部Terway Pod:

      kubectl delete -n kube-system pod -l app=terway-eni

    执行以下命令检查全部是否成功重建Terway Pod。

    kubectl get pod -n kube-system  | grep terway
  5. 创建Pod,验证新创建的Pod是否可以从新添加的VSwitch成功分配获得IP地址。

如果您在上述操作中遇到异常情况,请提交工单