6.2.4. アプリケーション Pod の drain (Pod の退避) を実行せずにノードを再起動した場合の単一ノード OpenShift クラスターでのエラーの処理
oc delete pods コマンドに --field-selector status.phase=Failed フラグを付けることで、ノードから失敗した Pod を削除できます。
単一ノードの OpenShift クラスターおよび OpenShift Container Platform クラスター一般では、最初にノードの drain (Pod の退避) を実行せずにノードの再起動が発生してしまう可能性があります。これは、デバイスを要求するアプリケーション Pod が UnexpectedAdmissionError エラーで失敗した場合に発生する可能性があります。Deployment、ReplicaSet、または DaemonSet エラーが報告されるのは、これらのデバイスを必要とするアプリケーション Pod が、それらのデバイスにサービスを提供する Pod より前に開始されるためです。Pod の再起動の順序を制御できません。
この動作は想定範囲内ですが、正常にデプロイできなかった場合でも、Pod がクラスター上に残る可能性があります。Pod は、引き続き UnexpectedAdmissionError を報告します。この問題は、アプリケーション Pod が通常 Deployment、ReplicaSet、または DaemonSet に含まれるため、軽減されます。Pod がこのエラー状態にある場合は、別のインスタンスが実行されているはずなので、ほとんど問題はありません。Deployment、ReplicaSet、または DaemonSet に Pod が属していれば、後続の Pod の正常な作成と実行が保証され、アプリケーションのデプロイも正常に行われます。
このような Pod がグレースフルに終了するように、アップストリームで作業が進行されます。この作業が解決されるまで、単一ノードの OpenShift クラスターで失敗した Pod を削除するには、以下のコマンドを実行します。
$ oc delete pods --field-selector status.phase=Failed -n <POD_NAMESPACE>
単一ノードの OpenShift クラスターでは、ノードの drain (Pod の退避) を実行するオプションは利用できません。