第3章 PodDisruptionBudget [policy/v1]


説明
PodDisruptionBudget は、Pod のコレクションに発生する可能性のある最大の中断を定義するオブジェクトです。
object

3.1. 仕様

プロパティー説明

apiVersion

string

APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。

kind

string

kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これを更新することはできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。

metadata

ObjectMeta

標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。

spec

object

PodDisruptionBudgetSpec は、PodDisruptionBudget の説明です。

status

object

PodDisruptionBudgetStatus は、PodDisruptionBudget のステータスに関する情報を表します。ステータスは、システムの実際の状態を追跡する場合があります。

3.1.1. .spec

説明
PodDisruptionBudgetSpec は、PodDisruptionBudget の説明です。
object
プロパティー説明

maxUnavailable

IntOrString

"セレクター" によって選択された最大で "maxUnavailable" が、削除後に使用できなくなった場合、つまり、削除された Pod がない場合でも、削除が許可されます。たとえば、0 を指定することで、すべての自発的なエビクションを防ぐことができます。これは、"minAvailable" との相互に排他的な設定です。

minAvailable

IntOrString

"セレクター" によって選択された少なくとも "minAvailable" Pod が、削除後も、つまり、削除された Pod がない場合でも使用できる場合は、削除が許可されます。したがって、たとえば、"100%" を指定することで、すべての自発的なエビクションを防ぐことができます。

selector

LabelSelector

エビクションが混乱予算によって管理されている Pod に対するラベルクエリー。null セレクターは Pod に一致しませんが、空 ({}) セレクターは名前空間内のすべての Pod を選択します。

unhealthyPodEvictionPolicy

string

UnhealthyPodEvictionPolicy は、異常な Pod のエビクションを考慮する必要がある場合の基準を定義します。現在の実装では、type="Ready",status="True" の status.conditions 項目を持つ Pod が正常な Pod とみなされます。

有効なポリシーは IfHealthyBudget および AlwaysAllow です。ポリシーを指定しないと、IfHealthyBudget ポリシーに対応するデフォルトの動作が使用されます。

IfHealthyBudget ポリシーは、実行中 (status.phase="Running") であってもまだ正常ではない Pod は、保護されたアプリケーションが中断されていない場合にのみ退避できることを意味します (status.currentHealthy は少なくとも status.desiredHealthy と同等とする)。正常な Pod はエビクションの PDB の対象になります。

AlwaysAllow ポリシーは、実行中 (status.phase="Running") ではあるがまだ正常ではない Pod がすべて中断されているとみなされ、PDB の基準が満たされているかどうかに関係なく削除できることを意味します。つまり、中断されたアプリケーションの Pod を実行しているパースペクティブが正常になる機会を得られない可能性があります。正常な Pod はエビクションの PDB の対象になります。

今後、追加のポリシーが追加される可能性があります。エビクションの決定を行うクライアントは、このフィールドで認識されていないポリシーがあった場合に、異常な Pod のエビクションを禁止する必要があります。

このフィールドは、ベータレベルです。エビクション API は、PDBUnhealthyPodEvictionPolicy のフィーチャーゲートが有効になっている場合 (デフォルトで有効になっている場合) に、このフィールドを使用します。

使用可能な列挙値: - "AlwaysAllow" ポリシーは、実行中 (status.phase="Running") ではあるがまだ正常ではない Pod がすべて中断されているとみなされ、PDB の基準が満たされているかどうかに関係なく削除できることを意味します。つまり、中断されたアプリケーションの Pod を実行しているパースペクティブが正常になる機会を得られない可能性があります。正常な Pod は PDB のエビクションの対象となります。 - "IfHealthyBudget" ポリシーは、実行中 (status.phase="Running") であってもまだ正常ではない Pod は、保護されたアプリケーションが中断されていない場合にのみ退避できることを意味します (status.currentHealthy は少なくとも status.desiredHealthy と同等とする)。正常な Pod はエビクションの PDB の対象になります。

3.1.2. .status

説明
PodDisruptionBudgetStatus は、PodDisruptionBudget のステータスに関する情報を表します。ステータスは、システムの実際の状態を追跡する場合があります。
object
必須
  • disruptionsAllowed
  • currentHealthy
  • desiredHealthy
  • expectedPods
プロパティー説明

conditions

array (条件)

条件には、PDB の条件が含まれています。中断コントローラーは、DisruptionAllowed 条件を設定します。理由フィールドの既知の値は次のとおりです (将来、追加の理由が追加される可能性があります)。-SyncFailed: コントローラーでエラーが発生し、許可された中断の数を計算できませんでした。したがって、中断は許可されず、状態のステータスは False になります。- InsufficientPods:Pod の数は、PodDisruptionBudget で必要な数以下です。中断は許可されず、状態のステータスは False になります。- SufficientPods:PodDisruptionBudget で必要とされるよりも多くの Pod があります。条件は True になり、許可される中断の数は、disruptionsAllowed プロパティーによって提供されます。

currentHealthy

integer

健康な Pod の現在の数

desiredHealthy

integer

正常な Pod の最小希望数

disruptedPods

object (時間)

DisruptedPods には、API サーバーのエビクションサブリソースハンドラーによってエビクションが処理されたにもかかわらず、PodDisruptionBudget コントローラーには監視されていない Pod に関する情報が含まれています。Pod は、API サーバーが削除要求を処理してから、PDB コントローラーによって削除のマークが付けられた (またはタイムアウト後) と見なされるまで、このマップに含まれます。マップのキーは Pod の名前であり、値は API サーバーがエビクションリクエストを処理した時刻です。削除が行われず、Pod がまだ存在する場合は、しばらくすると PodDisruptionBudget コントローラーによって自動的にリストから削除されます。すべてが順調に進んだ場合、このマップはほとんどの時間空になっているはずです。マップ内のエントリーの数が多い場合は、Pod の削除に問題があることを示している可能性があります。

disruptionsAllowed

integer

現在許可されている Pod の中断の数。

expectedPods

integer

この混乱の予算によってカウントされた Pod の総数。

observedGeneration

integer

この PDB ステータスを更新するときに観察された最新の世代。DisruptionsAllowed およびその他のステータス情報は、observedGeneration が PDB のオブジェクト生成と等しい場合にのみ有効です。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.