ノードプールの更新ポリシーを構成する

ノードプールはデフォルトで並列処理によって更新されます。これにより、次の 2 つの問題が発生する可能性があります。

  • 割り当ての問題

    ノードプールごとに 1 個のサージノードが作成されるため、N 個のノードプールを並行して更新するとき、N 個のサージノードが作成されます。これらのサージノードを作成するための容量が制限されている場合は、リソース不足になる可能性があります。

  • PDB のデッドロックの問題

    一度に複数のノードをドレインすると、PDB のデッドロックが発生する可能性があります。

このドキュメントでは、ノードプールの更新ポリシーで、ノードプールの更新時に同時に更新されるノードの最大数を構成するように指定する方法について説明します。こうすることで、前述の 2 つの問題を回避できます。0 は、現在の並列動作を保持することを意味します(デフォルト値)。1 は、ノードプールを順次更新することを意味します。

順次更新では 2 つの問題を回避できますが、ノードプールの更新プロセスが並行更新よりも長時間を要する可能性があります。

ノードプールの更新ポリシーを構成する

ユーザー クラスタのシード構成 user-cluster.yaml で、次のようにノードプールの更新が順次実行されるように構成できます。

nodePoolUpdatePolicy:
  maximumConcurrentNodePoolUpdate: 1

maximumConcurrentNodePoolUpdate を任意の整数値に設定して、同時に更新するノードプールの数を構成できます。

ノードプールの更新ポリシーは、ノードプールの更新とアップグレードの両方に適用されますが、作成には適用されません。また、ノードプールの更新 / アップグレードで問題が発生した場合、現在、この動作はノードプールをブロックし、次のノードプールの更新に進めません。