ACK通过CCM(Cloud Controller Manager)组件在VPC路由表中添加合适的路由来连通集群中Pod之间的网络连接。您可以通过更新cloud-config配置文件让ACK集群使用VPC多路由表功能。本文介绍如何让ACK集群使用VPC支持的多路由表。
前提条件
已创建ACK集群:
创建ACK托管集群。具体操作,请参见创建Kubernetes托管版集群。
说明仅1.18及以上版本的ACK托管集群支持此功能;如果ACK托管集群版本低于1.18,请提交工单处理。
创建ACK专有集群。具体操作,请参见创建Kubernetes专有版集群。
CCM版本需大于v1.9.3.86-g4454991-aliyun。关于如何查看CCM版本的步骤,请参见管理组件。
ACK集群的网络为Flannel模式。
集群VPC下存在多个路由表。
说明如果集群VPC下仅有一个路由表,则无需配置VPC多路由表。
背景信息
VPC对多个路由表的支持能力,让您可以自行选择ECS关联路由表。由于CCM早期版本中仅提供了VPC单路由表的支持,因此您需要在容器服务控制台升级CCM至最新版本。关于如何升级CCM的版本,请参见管理组件。
ACK托管集群配置VPC多路由表
ACK托管集群支持通过控制台方式配置VPC多路由表。
ACK专有集群配置VPC多路由表
ACK专有集群可以通过kubectl或控制台方式配置VPC多路由表。
通过kubectl方式
使用kubectl命令方式配置支持VPC多路由表前,确保可以使用kubectl命令链接ACK专有版集群。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群。
更新配置项cloud-config文件。
使用命令
kubectl edit cm -n kube-system cloud-config
修改cloud-config配置项文件,将配置项文件中的${ROUTE_TABLES_IDS}
替换为您的VPC路由表ID(必须包含系统路由表),多个路由表使用英文半角逗号(,)分隔(例如,vtb-t4n788888****,vtb-t4n7k6u3m0n840799****)。重要cloud-config配置项文件的其他参数无需修改,只修改
${ROUTE_TABLES_IDS}
。"routeTableIDs": "${ROUTE_TABLES_IDS}"
执行以下命令重启CCM Pod。
kubectl -n kube-system delete po -lapp=cloud-controller-manager
重启完毕后,即可在路由表中看到对应的集群节点条目。
通过控制台方式
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在kube-system命名空间下,单击配置项cloud-config右侧的YAML编辑。
在查看YAML面板的routeTableIDs参数的值中,填写您的VPC路由表ID(必须包含系统路由表),多个路由表使用半角逗号(,)分隔(例如,vtb-t4n788888****,vtb-t4n7k6u3m0n840799****),然后单击确定。
在集群管理页左侧导航栏,选择 。
在kube-system命名空间下,选中应用cloud-controller-manager,在页面下方单击批量重新部署。
重新部署后,即可在路由表中看到对应的集群节点条目。