Kubernetes 1.27 PodDisruptionBudget再考
1.27でbeta
デフォルト有効化
EKSでも使えるようになった
API によって開始されるエビクションは、ポッドの正常な終了をトリガーするプロセスです。このプロセスは、API を直接呼び出すか、kubectl ドレイン コマンドを使用するか、クラスター内の他のアクターを使用して開始できます。このプロセス中に、十分な数のポッドが常にクラスター内で実行されていることを確認するために、すべてのポッドの削除が適切な PDB と照合されます。
次のポリシーにより、PDB 作成者は、プロセスが異常なポッドを処理する方法をより詳細に制御できるようになります。
IfHealthyBudget
とAlwaysAllow
の 2 つのポリシーから選択できます。
前者の
IfHealthyBudget
は、既存の動作に従って、デフォルトで得られる最高の可用性を実現します。異常なポッドは、アプリケーションに利用可能な最小数の .status.desiredHealthy ポッドがある場合にのみ中断できます。
PDB の
spec.unhealthyPodEvictionPolicy
フィールドをAlwaysAllow
に設定することにより、アプリケーションの可用性のベスト エフォートを選択することになります。このポリシーを使用すると、不健全なポッドをいつでも削除できます。これにより、クラスターの保守とアップグレードが容易になります。
多くの場合、
AlwaysAllow
がより良い選択であると考えられますが、一部の重要なワークロードでは、異常な Pod であってもノード ドレインや API によって開始される他の形式のエビクションから保護する方が望ましい場合もあります。
うちではAlwaysAllow
でよさそう