全部產品
Search
文件中心

Container Service for Kubernetes:將已有ECS執行個體添加到ACK叢集

更新時間:Oct 25, 2024

如果購買ECS執行個體後需將該雲端服務器添加到ACK叢集中作為Worker節點,或移除Worker節點後需將節點執行個體重新加入節點池,您可以在Container Service管理主控台自動添加或手動添加節點。添加前,請仔細閱讀使用限制、注意事項等。

前提條件

使用限制

執行個體規格限制

限制項

說明

推薦解決方案

神龍裸金屬GPU執行個體

神龍裸金屬GPU執行個體(ECS規格類型系列為ebmgn7ebmgn7e)不支援自動MIG清理。因此,ACK添加該類型的節點時會重設已有的MIG設定。由於重設時間不定,可能會出現重設時間過長導致自動添加節點失敗。

排查失敗原因,請參見裸金屬執行個體節點添加失敗怎麼辦?

配額限制

限制項

說明

推薦解決方案

節點配額

需確保您的叢集節點配額充足。關於ACK叢集的配額限制,請參見配額與限制

如需添加更多節點,前往配額中心調整。

ECS執行個體限制

限制項

說明

推薦解決方案

所屬帳號、地區、VPC

僅支援添加同一帳號下的ECS執行個體,且添加的ECS執行個體必須與叢集在同一地區、同一VPC下。

重新建立符合要求的ECS執行個體或叢集。

所屬叢集

不支援添加已屬於其他叢集的ECS執行個體。

如ECS執行個體已屬於其他叢集,請先將該節點移除出舊叢集,再將節點添加到目的地組群中。移除方式,請參見移除節點

網路限制

限制項

說明

推薦解決方案

Terway網路外掛程式

對待添加的ECS執行個體機型支援的最大Pod數有如下限制。

  • 共用彈性網卡模式:當機型支援的最大Pod數小於等於10時,不允許加入叢集。

  • 獨佔彈性網卡模式:當機型支援的最大Pod數小於等於5時,不允許加入叢集。

需要注意的是,不同彈性網卡模式支援的最大Pod數取決於該雲端服務器機型所支援的最大的彈性網卡(ENI)數。關於如何計算不同彈性網卡模式支援的最大Pod數,請參見使用Terway網路外掛程式;關於如何查看執行個體規格支援的Pod數量,請參見使用Terway網路外掛程式

對彈性網卡有如下限制。

當添加的節點包含新增可用性區域時,您需要為Terway更新vSwitch配置,否則Pod IP將從節點主網卡對應的vSwitch分配。

擴容Terway情境下的Pod虛擬交換器

當添加已有節點到節點池時,已有節點上已經綁定的彈性網卡(ENI)會繼續保留,Pod IP會從已經綁定的彈性網卡所關聯的vSwitch上分配。請確保添加的節點中彈性網卡只包含一個主網卡。

如果有Pod IP不屬於您配置的vSwitch,請在叢集中移除節點,刪除除主網卡外的輔助網卡,再重新加入叢集。

當添加已有節點到節點池時,需確保目標ECS執行個體已綁定叢集RAM Role,避免因許可權問題無法正確計算MaxPod(節點最大可用Pod數),繼而導致彈性網卡數量計算錯誤。

叢集資源許可權(RBAC授權)

Flannel網路外掛程式

對叢集VPC下的系統路由表自訂路由條目數量存在限制,不能超過每個路由表中可保有的自訂路由條目配額,自訂路由條目的相關資訊,請參見路由表概述

配額中心調整。

IPv6雙棧

需要為ECS主網卡分配一個IPv6地址。

關於如何為ECS主網卡分配IPv6地址,管理IPv6地址

安全性群組限制

限制項

說明

推薦解決方案

安全性群組類型

添加已有ECS執行個體到節點池時,會將ECS執行個體加入到節點池安全性群組中。由於ECS的限制,ECS執行個體無法同時加入普通安全性群組和企業安全性群組。因此,ECS執行個體已加入的安全性群組類型必須與節點池安全性群組類型相同。

您可以單擊目標節點池後面的詳情,在基本資料頁簽中查看節點池的安全性群組資訊;可以登入ECS控制台查看ECS執行個體已加入的安全性群組資訊。關於安全性群組的詳細資料,請參見安全性群組概述

節點池的安全性群組不支援修改,安全性群組的類型也不允許變更。如遇衝突,請通過以下方式解決。

  • 替換安全性群組,將已有ECS執行個體的安全性群組替換為節點池安全性群組類型。詳細資料,請參見安全性群組與ECS執行個體關聯的管理

  • 將ECS執行個體移除出不符合要求的安全性群組後,再次嘗試將節點添加到叢集或節點池。

安全性群組規則

ECS執行個體已有安全性群組規則不能與即將加入的節點池安全性群組以及叢集安全性群組規則衝突。

提前將已有節點加入到節點池安全性群組中。

通過安全性群組規則檢測功能,檢測節點池安全性群組中的每一條規則。

安全性群組數量

添加已有ECS執行個體到節點池時,會將執行個體加入到節點池安全性群組中,需要保證ECS執行個體加入的安全性群組數量未超過限制(預設5個)。

關於安全性群組的數量限制以及如何申請提升ECS執行個體能夠加入的安全性群組數量,請參見安全性群組

作業系統限制

僅支援作業系統類型為Alibaba Cloud Linux、Red Hat、Ubuntu和CentOS的ECS執行個體。推薦您使用Alibaba Cloud Linux 3。關於ACK叢集的作業系統支援情況,請參見作業系統鏡像概述

注意事項

執行個體釋放

添加到節點池的ECS執行個體不會隨叢集或節點池的刪除而釋放,需手動移除。如需手動移除,請參見移除節點

相關計費

添加到叢集中的ECS執行個體不會隨叢集或節點池的刪除而釋放。請您關注ECS計費狀態,避免產生額外費用。更多資訊,請參見計費概述

執行個體配置

向節點池中添加已有ECS執行個體時,其付費類型和規格保持不變。

作業系統與雲端硬碟

  • 強烈建議您在操作前做好相關備份,以免資料丟失造成損失。具體操作,請參見建立快照

  • 自動添加節點會根據節點池當前的作業系統替換該節點原有的作業系統;手動添加節點會保留節點原有作業系統。如需保留節點原作業系統,請手動添加節點。

  • 自動添加節點時,原系統硬碟會被釋放,資料盤不會被釋放,但資料盤磁碟ID會發生變更,其中儲存的資料不受影響。

  • 自動添加節點時,原系統硬碟的使用者快照會保留,自動快照則根據該系統硬碟屬性值“自動快照是否隨磁碟釋放”的選項來判斷是保留還是隨磁碟刪除。您可以登入ECS管理主控台,在磁碟列表單擊修改屬性,查看或修改屬性值。

  • 為確保快照額度充足,以順利完成周期性的自動快照策略,您可以刪除無需使用的使用者快照和自動快照。

自動或手動添加節點

自動或手動添加並不影響您叢集已有的節點和應用的運行。自動添加節點會根據節點池當前的作業系統替換該節點原有的作業系統;手動添加節點會保留節點原有作業系統。如需保留ECS執行個體的原作業系統,請手動添加節點。

說明

為避免相容性問題,不建議您將已建立服務的ECS執行個體初始化為Worker節點。

自動添加節點

自動添加節點方式會列出當前帳號下可用的ECS執行個體,在控制台介面進行安裝部署,並自動添加到叢集。

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

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

  3. 節點池頁面,單擊目標節點池右側操作列下的更多,然後單擊添加已有節點

  4. 選擇已有雲端服務器執行個體設定精靈頁面,選擇添加方式自動添加,在已有雲端服務器的列表中,選擇所需的ECS雲端服務器,然後單擊下一步

    重要

    如果雲端服務器列表中無目標ECS雲端服務器,表明該ECS執行個體不滿足添加到叢集的條件。檢查具體不滿足的原因,請參見上文的使用限制注意事項

    您也可以勾選顯示停用執行個體,查看執行個體無法加入叢集的原因。如果勾選後也無法找到對應執行個體,請檢查該執行個體是否和叢集位於同一地區及同一VPC下。

  5. 填寫執行個體資訊頁面,填寫相關資訊,然後單擊下一步

    配置項

    說明

    叢集ID/名稱

    當前要添加的叢集資訊,已預設配置。

    資料盤掛載

    設定是否將容器和鏡像儲存在資料盤。

    • 如果ECS已掛載資料盤,且最後一塊資料盤的檔案系統未初始化,系統會自動將最後一塊資料盤格式化為ext4,用於存放內容/var/lib/docker/var/lib/kubelet(分別為Docker容器運行時和kubelet組件預設對應的資料目錄)。

      重要

      被格式化的資料盤內原有資料將會丟失,請提前備份資料。

    • 如果ECS未掛載資料盤,則不會自動掛載新的資料盤。

    保留執行個體名稱

    添加節點時,預設開啟保留執行個體名稱。如果您不需要保留執行個體名稱,您可以關閉保留執行個體名稱,此時會按照自訂節點名稱指定的規則來重新命名節點。

    執行個體資訊

    待添加雲端服務器執行個體的執行個體ID及名稱。

  6. 添加已有執行個體到叢集對話方塊,仔細閱讀注意事項,然後單擊確定

    成功添加後,您可以在節點池頁面的操作列單擊目標節點池右側的詳情,然後在節點管理頁簽查看添加的節點資訊。

手動添加節點

重要

手動添加節點不會重設您的作業系統。在手動添加節點前,除使用限制外,還需關注如下限制。

  • 作業系統不支援啟用SWAP。

  • 如果將容器和鏡像儲存在資料盤,則僅支援ext和xfs檔案系統。

手動添加節點方式要求您擷取安裝命令,登入到對應的ECS雲端服務器上進行安裝。每次只能添加一個ECS雲端服務器。

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

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

  3. 節點池頁面,單擊目標節點池右側操作列下的更多,然後單擊添加已有節點

  4. 選擇已有雲端服務器執行個體配置項頁面,選擇添加方式手動添加,在已有雲端服務器的列表,選擇所需的ECS雲端服務器,然後單擊下一步

  5. 填寫執行個體資訊頁面,填寫相關資訊,然後單擊下一步

    配置項

    說明

    叢集ID/名稱

    當前要添加的叢集資訊,已預設配置。

    資料盤掛載

    設定是否將容器和鏡像儲存在資料盤。

    • 如果ECS已掛載資料盤,且最後一塊資料盤的檔案系統未初始化,系統會自動將最後一塊資料盤格式化為ext4,用於存放內容/var/lib/docker/var/lib/kubelet(分別為Docker容器運行時和kubelet組件預設對應的資料目錄)。

      重要

      被格式化的資料盤內原有資料將會丟失,請提前備份資料。

    • 如果ECS未掛載資料盤,則不會自動掛載新的資料盤。

    保留執行個體名稱

    添加節點時,預設開啟保留執行個體名稱。如果您不需要保留執行個體名稱,您可以關閉保留執行個體名稱,此時會按照自訂節點名稱指定的規則來重新命名節點。

    執行個體資訊

    待添加雲端服務器執行個體的執行個體ID及名稱。

  6. 添加完成頁面,複製執行命令,供下文遠端連線ECS執行個體使用,然後單擊完成

  7. 登入ECS管理主控台,單擊左側導覽列中的執行個體與鏡像執行個體,選擇叢集所在的地區,選擇需要添加的ECS執行個體。

  8. 單擊ECS執行個體右側的遠端連線。在遠端連線與命令對話方塊,選擇遠端連線方式後進入ECS遠端連線介面。

    關於遠端連線方式,請參見下表:

    遠端連線方式

    說明

    VNC遠端連線

    關於如何使用VNC遠端連線ECS執行個體,請參見使用VNC登入執行個體

    發送遠程命令(雲助手)

    推薦使用,發送遠程命令可以協助您在執行個體內部快速執行命令,即無需遠端連線登入執行個體,即可完成查看硬碟空間、安裝軟體、啟動停止服務等操作。該功能通過雲助手的命令執行功能實現。關於如何安裝或啟用雲助手用戶端,請參見安裝雲助手Agent

  9. 在ECS執行個體遠端連線介面,根據頁面指導,輸入步驟6儲存的命令,單擊執行開始執行指令碼。

    指令碼執行成功後,該雲端服務器添加成功。

    成功添加後,您可以在節點池頁面的操作列單擊目標節點池右側的詳情,然後在節點管理頁簽查看添加的節點資訊。

常見問題

ECS執行個體加入叢集後,後續ECS升降配是否會對叢集業務產生影響?

ECS升降配通常包含修改執行個體規格、修改公網頻寬計費方式、修改公網頻寬、修改資料盤計費方式等,詳情請參見升降配方式概述。不同的升降配方式對於ECS執行個體的影響不同。

  • 對於無需重啟的升降配操作,請根據實際業務情況判斷對業務的影響。

  • 需要重啟ECS執行個體的升降配操作,例如執行個體規格升降配,會給業務帶來有損變更。進行相關操作(升配Worker節點的資源)前,建議先根據實際負載情況,判斷是否需要擴容冗餘節點用於承接業務Pod,並將需要升降配的節點排水並移除出伸縮組和ACK叢集。具體操作,請參見移除節點

    升降配完成後,再重新參見本文將節點添加回叢集。

添加已有節點後報錯,提示timeout,怎麼辦?

請排查節點與APIServer CLB的網路是否可以連通,請先排查安全性群組是否符合要求。添加已有節點時安全性群組的使用限制,請參見安全性群組限制。關於網路不通的其他問題,請參見網路管理FAQ

我可以將不同規格的已有節點添加到ACK叢集中嗎?

可以。您可以在節點池中指定多個執行個體規格,避免由於執行個體規格不可用或庫存不足,導致節點池彈出節點失敗。流程如下。

  1. 編輯或建立節點池,配置所需的節點規格。具體操作,請參見建立節點池編輯節點池

  2. 參見移除節點完成目標節點的移除和排水(請勿同時釋放ECS執行個體)。

  3. 參見本文的使用限制和操作步驟自動或手動添加節點,將不同規格的ECS執行個體添加到節點池中。

如何跨ACK叢集移動節點?

ACK不支援直接跨叢集移動節點,但您可以通過添加已有節點的方式來完成。流程如下。

  1. 參見移除節點完成目標節點的移除和排水(請勿同時釋放ECS執行個體)。

  2. 參見本文的使用限制和操作步驟自動或手動添加節點,將目標ECS執行個體添加到節點池中。

相關文檔