全部產品
Search
文件中心

Container Service for Kubernetes:新增Pod虛擬交換器

更新時間:Feb 15, 2025

在ENS邊緣情境中,如果ACK Edge叢集使用Terway Edge外掛程式,當虛擬交換器的IP不足或者需要擴充Pod網段時,您可以通過新增Pod虛擬交換器來增加IP地址資源供ACK Edge叢集使用。

前提條件

新增虛擬交換器

如果發現Pod虛擬交換器的IP資源不足,您可以通過以下方式新增虛擬交換器以供ACK Edge叢集使用。

  1. 在ENS對應的網路內建立交換器。

    1. 登入ENS控制台,在左側導覽列選擇網路管理 > 交換器

    2. 交換器頁面,單擊建立交換器,填寫相關內容後,單擊建立

      節點:選擇ENS節點。

      網路:選擇ENS對應的網路。

      名稱:新增交換器的名稱。

      IPv4網段:ENS的網路所在的網段。

  2. 將新增的虛擬交換器添加到Terway Edge的ConfigMap中。

    kubectl edit cm privateip-config -n kube-system 

    樣本輸出如下,您可以在vswitches下配置新增的虛擬交換器,可配置多個。其中n-xxx表示ENS中的網路ID,["vsw-xxx", "vsw-xxxx"]表示在該網路中的交換器ID,可配置多個,請勿刪除已有的交換器ID。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      annotations:
        helm.sh/hook: pre-install
      name: privateip-config
      namespace: kube-system
    data:
      privateip_conf: |
        {
          "vswitches": {
             "n-xxx": ["vsw-xxx", "vsw-xxxx"],
             "n-xxx": ["vsw-xxx", "vsw-xxxx"]
          },
          "vswitch_selection_policy": "most"
        }
    
    說明

    Pod的IP地址預設從預先購買的ENI所在虛擬交換器中分配,新增的Pod虛擬交換器可以與ENS執行個體以及ENI執行個體位於不同的交換器下。

如何判斷Pod虛擬交換器的IP資源不足?

在Terway Edge網路情境下,如果您發現Pod建立失敗,且狀態顯示為ContainerCreating,您可以通過以下方式確認虛擬交換器IP資源是否不足。

  1. 查看Pod所在節點的ENS節點。

    kubectl get pod -o wide 

    預期輸出:

    NAME      READY   STATUS              RESTARTS   AGE     IP             NODE    
    cube-1    0/1     ContainerCreating   0          41s     <none>         node-1 
    cube-2    0/1     ContainerCreating   0          41s     <none>         node-1  
  2. 查看ENS節點資源的相關資訊。

    kubectl describe ensnodes node-1

    預期輸出:

    Name:         node-1
    Namespace:    
    Labels:       name=node-1
    API Version:  network.alibabacloud.com/v1beta1
    ....
    Events:
      Type     Reason         Age      From               Message
      ----     ------         ----     ----               -------
      Warning  AllocIPFailed  1m       ens-multi-ip-node  [SDKError] API: AssignPrivateIpAddresses, ErrorCode: InvalidVSwitchId.IpNotEnough, RequestId: xxxxxxx, Message: Don't have enough private IPs in this switch.
      Warning  AllocIPFailed  1m       ens-multi-ip-node  [SDKError] API: AssignPrivateIpAddresses, ErrorCode: InvalidVSwitchId.IpNotEnough, RequestId: xxxxxxx, Message: Don't have enough private IPs in this switch.

    若輸出Events資訊中包含ErrorCode:InvalidVSwitchId.IpNotEnough ,則表明Pod虛擬交換器IP資源不足。

相關文檔