設定節點集區更新政策

節點集區更新政策可限制同時更新或升級的節點集區數量。根據預設,節點集區會平行更新,因此降低並行數量有助於避免 PodDisruptionBudget (PDB) 死結,以及資源或 IP 位址耗盡。但更新和升級需要較長時間。

資源和 IP 位址需求

根據預設,節點集區會平行更新。針對每個更新中的節點集區,叢集會建立一個激增節點。同時更新多個節點集區可能會導致下列限制:

  • 資源耗盡:如果額外容量有限,同時為多個節點集區建立激增節點,可能會超過可用的運算配額或主機容量。
  • PDB 死結:一次排空多個節點可能會導致 PodDisruptionBudget (PDB) 死結。
  • IP 位址可用性:每個平行更新的節點集區都需要一個額外的 IP 位址,供其激增節點使用。舉例來說,如要同時更新三個節點集區,必須有三個額外的 IP 位址可用:
    • 如果 worker 節點是從 DHCP 伺服器取得 IP 位址,則 DHCP 伺服器必須能為每個平行更新的節點集區提供一個額外的 IP 位址。
    • 如果 worker 節點使用靜態 IP 位址,則除了 worker 節點所需的 IP 位址外,IP 區塊檔案還必須為每個平行更新的節點集區額外提供一個 IP 位址。

如果可用的額外 IP 位址不足,無法同時更新所有節點集區,叢集會盡可能同時更新多個集區。當 IP 位址可用時,系統會更新剩餘的節點集區。

設定節點集區更新政策

進階叢集的注意事項如下:

  • 1.31 版:進階叢集不支援節點集區更新政策。

  • 1.32 版:進階叢集支援節點集區更新政策。

  • 1.32.0 至 1.32.1000、1.33.0 至 1.33.600 和 1.34.0 至 1.34.200 版:在進階叢集上,maximumConcurrentNodePoolUpdate 預設為 1,因此節點集區會依序更新。在後續修補程式版本和 1.35 以上版本中,預設值為 0,因此節點集區會平行更新。詳情請參閱 nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate。

在使用者叢集種子設定 user-cluster.yaml 中,您可以設定節點集區更新政策,依序更新節點集區,或設定並行限制:

nodePoolUpdatePolicy:
  maximumConcurrentNodePoolUpdate: 1

maximumConcurrentNodePoolUpdate 欄位可控管更新並行作業:

  • 0:在所有節點集區中保留預設並行行為。
  • 1:依序更新節點集區。雖然依序更新可避免資源和 IP 耗盡,但更新程序所需的時間會比平行更新長。
  • 大於 1 的整數:設定同時更新的節點集區數量上限。

節點集區更新政策適用於節點集區更新和升級,但不適用於建立。如果任何節點集區更新或升級作業遇到問題而卡住,程序就會在該集區中斷,不會繼續處理下一個節點集區。