標準叢集: 為何未在區域中部署 ALB?

經典基礎架構

當您擁有一個多區域的經典叢集,並執行 ibmcloud ks ingress alb ls --cluster CLUSTER`` 指令時,任何區域中均不會部署 ALB。 例如,如果您在 3 個區域中具有工作者節點,則可能會看到如下的輸出,其中公用 ALB 未部署至第三個區域。

ALB ID                                            Enabled    Status     Type      ALB IP           Zone    Build                          ALB VLAN ID   NLB Version
private-cr96039a75fddb4ad1a09ced6699c88888-alb1   false      disabled   private   -                dal10   ingress:1.1.2_2507_iks   2294021       -
private-cr96039a75fddb4ad1a09ced6699c88888-alb2   false      disabled   private   -                dal12   ingress:1.1.2_2507_iks   2234947       -
private-cr96039a75fddb4ad1a09ced6699c88888-alb3   false      disabled   private   -                dal13   ingress:1.1.2_2507_iks   2234943       -
public-cr96039a75fddb4ad1a09ced6699c88888-alb1    true       enabled    public    169.xx.xxx.xxx   dal10   ingress:1.1.2_2507_iks   2294019       -
public-cr96039a75fddb4ad1a09ced6699c88888-alb2    true       enabled    public    169.xx.xxx.xxx   dal12   ingress:1.1.2_2507_iks   2234945       -

在標準叢集中,當您首次在某個區域中建立叢集時,系統會自動在您的 IBM Cloud 經典基礎架構帳戶中,為該區域配置一個公共 VLAN 和一個私有 VLAN。

在該區域中,會在您指定的公用 VLAN 上要求 1 個公用可攜式子網路,並在您指定的專用 VLAN 上要求 1 個專用可攜式子網路。 對於 IBM Cloud Kubernetes Service,VLAN 的限制為 40 個子網路。 如果區域中叢集的 VLAN 已達到該限制,則 Ingress 子網域 無法佈建,且該區域的公用 Ingress ALB 無法佈建。

若要檢視 VLAN 有多少子網路,請執行下列動作:

  1. 從 IBM Cloud classic 基礎架構主控台,選擇網路 > IP 管理 > VLAN。
  2. 按一下您用來建立叢集之 VLAN 的 VLAN 號碼。 檢閱 Subnets 區段,以查看是否有 40 個以上的子網路。

請選擇以下其中一個選項來解決此問題:

選項 1:訂購新的 VLAN
如果您需要新的 VLAN,請與 IBM Cloud 支援中心聯絡,進行訂購。 然後,建立叢集,而叢集使用這個新的 VLAN。
選項 2:在可用的 VLAN 上使用 VLAN 跨接
如果您有另一個可用的 VLAN,可以在現有叢集裡設定 VLAN Spanning。 之後,您便可以將新的工作者節點新增至使用具有可用子網路之另一個 VLAN 的叢集。 若要檢查 VLAN 跨域功能是否已啟用,請使用 ibmcloud ks vlan spanning get --region REGION 指令。
選項 3:重複使用 VLAN 上的現有子網路
如果並未使用 VLAN 中的所有子網路,則可以透過將 VLAN 上的子網路新增到叢集來重複使用這些子網路。

選擇選項後,完成下列步驟。

  1. 檢查要使用的子網路是否可用。

    使用的基礎架構帳戶可能在多個 IBM Cloud 帳戶之間共用。 在這種情況下,即使執行 ibmcloud ks subnets 指令來查看 Bound Cluster 的子網路,也只能看到您的叢集的資訊。 請洽詢基礎架構帳戶擁有者,以確定子網路可供使用,且其他任何帳戶或團隊不在使用中。

  2. 使用 ibmcloud ks cluster subnet add 指令使現有子網路可供叢集使用。

  3. 驗證已順利建立子網路並將其新增至叢集。 子網路 CIDR 列出在 Subnet VLANs 區段中。

    ibmcloud ks cluster get --cluster CLUSTER_NAME --show-resources
    

    在此輸出範例中,第二個子網路已新增至 2234945 公用 VLAN:

    Subnet VLANs
    VLAN ID   Subnet CIDR          Public   User-managed
    2234947   10.xxx.xx.xxx/29     false    false
    2234945   169.xx.xxx.xxx/29    true     false
    2234945   169.xx.xxx.xxx/29    true     false
    
  4. 請確認您所新增子網中的可攜式 IP 位址,是否已用於您叢集中的 ALB。 各項服務可能需要幾分鐘時間,才能開始使用新子網中的可攜式 IP 位址。

    • 沒有 Ingress 子網域:執行 ibmcloud ks cluster get --cluster CLUSTER 以確認 Ingress 子網域是否已填入。
    • ALB 未部署在該區域中:執行 ibmcloud ks ingress alb ls --cluster CLUSTER 以確認遺漏的 ALB 是否已部署。