1.3. Machine Config Operator ノードの drain (Pod の退避) 動作について
マシン設定を使用して、新しい設定ファイルの追加、systemd ユニットまたはカーネル引数の変更、SSH キーの更新などのシステム機能を変更すると、Machine Config Operator (MCO) がそれらの変更を適用し、各ノードが目的の設定状態にあることを確認します。
変更を加えると、MCO は新しくレンダリングされたマシン設定を生成します。ほとんどの場合、新しくレンダリングされたマシン設定を適用するときに、Operator は、影響を受けるすべてのノードの設定が更新されるまで、影響を受ける各ノードで次の手順を実行します。
- スケジューリング対象から外します。MCO は、ノードを追加のワークロードに対してスケジュール不可としてマークします。
- drain (Pod の退避) を実行します。MCO は、ノード上で実行中のすべてのワークロードを終了します。その結果、ワークロードが他のノードに再スケジュールされます。
- 適用します。MCO は、必要に応じて新しい設定をノードに書き込みます。
- 再起動します。MCO はノードを再起動します。
- スケジューリング対象に戻します。MCO は、ノードをワークロードに対してスケジュール可能としてマークします。
このプロセス全体を通じて、MCO はマシン設定プールで設定された MaxUnavailable 値に基づいて必要な数の Pod を維持します。
MCO によるノードの drain (Pod の退避) を防止できる条件があります。MCO がノードの drain (Pod の退避) に失敗すると、Operator はノードを再起動できず、マシン設定を通じてノードに変更を加えることができなくなります。詳細情報と軽減策の手順については、"MCCDrainError" ランブックを参照してください。
MCO がマスターノード上の Pod を drain (Pod の退避) する場合は、次の条件に注意してください。
- シングルノードの OpenShift クラスターでは、MCO は drain (Pod の退避) 操作をスキップします。
- MCO は、etcd などのサービスへの干渉を防ぐために、静的 Pod を drain (Pod の退避) しません。
場合によっては、ノードが drain (Pod の退避) されないことがあります。詳細は、「Machine Config Operator について」を参照してください。
node disruption policy を使用するか、コントロールプレーンの再起動を無効にすることで、drain (Pod の退避) と再起動のサイクルによって引き起こされる停止を軽減できます。詳細は、「マシン設定の変更後のノード再起動動作について」および「Machine Config Operator の自動再起動の無効化」を参照してください。