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,在頁面下方單擊批量重新部署。
重新部署后,即可在路由表中看到對應的集群節點條目。