4.3. クラスターの更新フェーズ

OpenShift Container Platform では、クラスターの更新は 2 つのフェーズで行われます。

  • Cluster Version Operator (CVO) ターゲット更新ペイロードのデプロイメント
  • Machine Config Operator (MCO) ノードの更新

4.3.1. Cluster Version Operator ターゲット更新ペイロードのデプロイメント

Cluster Version Operator (CVO) は、ターゲットの更新リリースイメージを取得し、クラスターに適用します。Pod として実行されるすべてのコンポーネントはこのフェーズ中に更新されますが、ホストコンポーネントは Machine Config Operator (MCO) によって更新されます。このプロセスには 60 ~ 120 分かかる場合があります。

注記

更新の CVO フェーズでは、ノードは再起動されません。

4.3.2. Machine Config Operator ノードの更新

Machine Config Operator (MCO) は、新しいマシン設定を各コントロールプレーンとコンピュートノードに適用します。このプロセス中に、MCO はクラスターの各ノードで次の一連のアクションを実行します。

  1. すべてのノードを遮断してドレインする
  2. オペレーティングシステム (OS) を更新する
  3. ノードを再起動します。
  4. すべてのノードのコードを解除し、ノードでワークロードをスケジュールします
注記

ノードが遮断されている場合、ワークロードをそのノードにスケジュールすることはできません。

このプロセスが完了するまでの時間は、ノードやインフラストラクチャーの設定など、いくつかの要因によって異なります。このプロセスは、ノードごとに完了するまでに 5 分以上かかる場合があります。

MCO に加えて、次のパラメーターの影響を考慮する必要があります。

  • コントロールプレーンノードの更新期間は予測可能であり、多くの場合、コンピュートノードよりも短くなります。これは、コントロールプレーンのワークロードが適切な更新と迅速なドレインに合わせて調整されているためです。
  • Machine Config Pool (MCP) で maxUnavailable フィールドを 1 より大きい値に設定することで、コンピュートノードを並行して更新できます。MCO は、maxUnavailable で指定された数のノードを遮断し、それらを更新不可としてマークします。
  • MCP で maxUnavailable を増やすと、プールがより迅速に更新されるのに役立ちます。ただし、maxUnavailable の設定が高すぎて、複数のノードが同時に遮断されている場合、レプリカを実行するスケジュール可能なノードが見つからないため、Pod 中断バジェット (PDB) で保護されたワークロードのドレインに失敗する可能性があります。MCP の maxUnavailable を増やす場合は、PDB で保護されたワークロードを排出できるように、スケジュール可能なノードがまだ十分にあることを確認してください。
  • 更新を開始する前に、すべてのノードが使用可能であることを確認する必要があります。ノードが利用できないと、maxUnavailable および Pod 中断バジェットに影響するため、利用できないノードがあると、更新期間に大きな影響を与える可能性があります。

    ターミナルからノードのステータスを確認するには、次のコマンドを実行します。

    $ oc get node

    出力例

    NAME                                        STATUS                      ROLES   AGE     VERSION
    ip-10-0-137-31.us-east-2.compute.internal   Ready,SchedulingDisabled    worker  12d     v1.23.5+3afdacb
    ip-10-0-151-208.us-east-2.compute.internal  Ready                       master  12d     v1.23.5+3afdacb
    ip-10-0-176-138.us-east-2.compute.internal  Ready                       master  12d     v1.23.5+3afdacb
    ip-10-0-183-194.us-east-2.compute.internal  Ready                       worker  12d     v1.23.5+3afdacb
    ip-10-0-204-102.us-east-2.compute.internal  Ready                       master  12d     v1.23.5+3afdacb
    ip-10-0-207-224.us-east-2.compute.internal  Ready                       worker  12d     v1.23.5+3afdacb

    ノードのステータスが NotReady または SchedulingDisabled の場合、ノードは使用できず、更新期間に影響します。

    ComputeNode を展開することで、Web コンソールの Administrator パースペクティブからノードのステータスを確認できます。