全部產品
Search
文件中心

Container Service for Kubernetes:使用VPC的多路由表功能

更新時間:Jun 19, 2024

ACK通過CCM(Cloud Controller Manager)組件在VPC路由表中添加合適的路由來連通叢集中Pod之間的網路連接。您可以通過更新cloud-config設定檔讓ACK叢集使用VPC多路由表功能。本文介紹如何讓ACK叢集使用VPC支援的多路由表。

前提條件

  • 已建立ACK叢集:

  • CCM版本需大於v1.9.3.86-g4454991-aliyun。關於如何查看CCM版本的步驟,請參見管理組件

  • ACK叢集的網路為Flannel模式。

  • 叢集VPC下存在多個路由表。

    說明

    如果叢集VPC下僅有一個路由表,則無需配置VPC多路由表。

背景資訊

VPC對多個路由表的支援能力,讓您可以自行選擇ECS關聯路由表。由於CCM早期版本中僅提供了VPC單路由表的支援,因此您需要在Container Service控制台升級CCM至最新版本。關於如何升級CCM的版本,請參見管理組件

ACK託管叢集配置VPC多路由表

ACK託管叢集支援通過控制台方式配置VPC多路由表。

  1. 擷取路由表ID。

    1. 登入專用網路管理主控台,在左側導覽列選擇路由表

    2. 路由表版面設定搜尋項為專用網路ID,搜尋叢集VPC,擷取叢集VPC對應的路由表ID。

      路由表

  2. 登入Container Service管理主控台,在左側導覽列選擇叢集

  3. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 組件管理

  4. 組件管理頁面,單擊Cloud Controller Manager組件的配置

    配置.png

  5. routeTableIDs文字框中,輸入步驟1擷取的路由表ID,然後單擊確認

    VPC路由表ID必須包含系統路由表,多個路由表使用半形逗號(,)分隔(例如,vtb-t4n788888****,vtb-t4n7k6u3m0n840799****)。路由表.png

ACK專有叢集配置VPC多路由表

ACK專有叢集可以通過kubectl或控制台方式配置VPC多路由表。

通過kubectl方式

使用kubectl命令方式配置支援VPC多路由表前,確保可以使用kubectl命令連結ACK專有版叢集。具體操作,請參見擷取叢集KubeConfig並通過kubectl工具串連叢集

  1. 更新配置項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}"
  2. 執行以下命令重啟CCM Pod。

    kubectl -n kube-system delete po -lapp=cloud-controller-manager

    重啟完畢後,即可在路由表中看到對應的叢集節點條目。

通過控制台方式

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇組態管理 > 配置項

  3. 在kube-system命名空間下,單擊配置項cloud-config右側的YAML編輯

  4. 查看YAML面板的routeTableIDs參數的值中,填寫您的VPC路由表ID(必須包含系統路由表),多個路由表使用半形逗號(,)分隔(例如,vtb-t4n788888****,vtb-t4n7k6u3m0n840799****),然後單擊確定

    cloud-config

  5. 在叢集管理頁左側導覽列,選擇工作負載 > 守護進程集

  6. 在kube-system命名空間下,選中應用cloud-controller-manager,在頁面下方單擊批量重新部署

    重新部署後,即可在路由表中看到對應的叢集節點條目。