You need to enable JavaScript to run this app.
导航

集群存在多个可用区子网情况下如何处理 VCI Pod 的调度?

最近更新时间2022.11.07 20:40:34

首次发布时间2022.11.07 20:40:34

问题描述

在不单独指定 VCI Pod 子网的情况下,VCI Pod 的子网默认与其所在 VPC-CNI 集群的 Pod CIDR 一致。考虑到 Pod 子网的 IP 地址被用尽等情况,弹性容器实例提供了相关的扩展功能,即支持以 Kubernetes 方式创建 VCI Pod 时通过 Pod Annotation 指定额外的 Pod 子网。(详细说明,请参见 指定子网创建实例)。
创建 VCI Pod 时,若通过 Annotation:vke.volcengine.com/preferred-subnet-ids指定的子网所在可用区(例如可用区 B 的 Subnet-B-1),与创建 VPC-CNI 集群(该 VCI Pod 所在集群)时指定的子网可用区(例如可用区 A 的 Subnet-A-1)不同,则集群会存在两个不同可用区子网。在存在两个不同可用区子网的 VPC-CNI 集群中,新增更多 VCI Pod 时,若不指定该 VCI Pod 的子网,则有 50% 的概率调度到可用区 B 的 Subnet-B-1,此时该 VCI Pod 无法获取 Pod IP。

解决方法

针对上述问题,分如下两种场景,提供解决方法:

  • 将新增的 VCI Pod 调度到新的可用区子网(非创建集群时指定的可用区子网):
    该 VCI Pod 必须通过 Annotation:vke.volcengine.com/preferred-subnet-ids指定子网。详细操作,请参见 指定子网创建实例
  • 将新增的 VCI Pod 调度到创建集群时指定的可用区子网:
    在创建 VCI Pod 时,通过节点亲和调度,将该 VCI Pod 调度到指定的虚拟节点(VirtualNode)上。详细操作步骤如下:
    1. 登录 容器服务控制台
    2. 单击左侧导航栏中的 集群
    3. 在集群列表页面,单击目标集群。
    4. 在集群管理页面的左侧导航栏中,单击 节点,找到目标可用的虚拟节点,单击虚拟节点名称。
      alt
    5. 节点详情页标签 页签,找到cluster.vke.volcengine.com/node-name ,获取对应的
      alt
    6. 创建 VCI Pod 时(即创建工作负载时指定使用弹性容器实例部署该工作负载),通过节点亲和调度功能关联上一步获取到的cluster.vke.volcengine.com/node-name,将 VCI Pod 调度到指定的虚拟节点上。详细的操作,请参见 工作负载

      说明

      弹性容器实例不支持守护进程(Daemonset)。更多信息,请参见 使用限制

      alt