ポリシー API
ポリシー API のリファレンスガイド
概要
第1章 ポリシー API
1.1. Eviction [policy/v1]
- 説明
- Eviction は、特定のポリシーと安全上の制約に従って、Pod をノードから削除します。これは Pod のサブリソースです。このようなエビクションを発生させるリクエストは、…/pods/<Pod 名 >/evictions に POST することで作成されます。
- 型
-
object
1.2. PodDisruptionBudget [policy/v1]
- 説明
- PodDisruptionBudget は、Pod のコレクションに発生する可能性のある最大の中断を定義するオブジェクトです。
- 型
-
object
第2章 Eviction [policy/v1]
- 説明
- Eviction は、特定のポリシーと安全上の制約に従って、Pod をノードから削除します。これは Pod のサブリソースです。このようなエビクションを発生させるリクエストは、…/pods/<Pod 名 >/evictions に POST することで作成されます。
- 型
-
object
2.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
| DeleteOptions が提供される場合があります。 | |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| ObjectMeta は、エビクトされる Pod を記述します。 |
2.2. API エンドポイント
以下の API エンドポイントを利用できます。
/api/v1/namespaces/{namespace}/pods/{name}/eviction
-
POST
: Pod のエビクションを作成します。
-
2.2.1. /api/v1/namespaces/{namespace}/pods/{name}/eviction
パラメーター | 型 | 説明 |
---|---|---|
|
| エビクションの名前 |
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- Pod のエビクションを作成します。
パラメーター | 型 | 説明 |
---|---|---|
|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空白 |
第3章 PodDisruptionBudget [policy/v1]
- 説明
- PodDisruptionBudget は、Pod のコレクションに発生する可能性のある最大の中断を定義するオブジェクトです。
- 型
-
object
3.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| PodDisruptionBudgetSpec は、PodDisruptionBudget の説明です。 |
|
| PodDisruptionBudgetStatus は、PodDisruptionBudget のステータスに関する情報を表します。ステータスは、システムの実際の状態を追跡する場合があります。 |
3.1.1. .spec
- 説明
- PodDisruptionBudgetSpec は、PodDisruptionBudget の説明です。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
| "セレクター" によって選択された最大で "maxUnavailable" が、削除後に使用できなくなった場合、つまり、削除された Pod がない場合でも、削除が許可されます。たとえば、0 を指定することで、すべての自発的なエビクションを防ぐことができます。これは、"minAvailable" との相互に排他的な設定です。 | |
| "セレクター" によって選択された少なくとも "minAvailable" Pod が、削除後も、つまり、削除された Pod がない場合でも使用できる場合は、削除が許可されます。したがって、たとえば、"100%" を指定することで、すべての自発的なエビクションを防ぐことができます。 | |
| エビクションが混乱予算によって管理されている Pod に対するラベルクエリー。null セレクターは Pod に一致しませんが、空 ({}) セレクターは名前空間内のすべての Pod を選択します。 | |
|
| 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 のフィーチャーゲートが有効になっている場合 (デフォルトで有効になっている場合) に、このフィールドを使用します。
使用可能な列挙値: - |
3.1.2. .status
- 説明
- PodDisruptionBudgetStatus は、PodDisruptionBudget のステータスに関する情報を表します。ステータスは、システムの実際の状態を追跡する場合があります。
- 型
-
object
- 必須
-
disruptionsAllowed
-
currentHealthy
-
desiredHealthy
-
expectedPods
-
プロパティー | 型 | 説明 |
---|---|---|
| 条件には、PDB の条件が含まれています。中断コントローラーは、DisruptionAllowed 条件を設定します。理由フィールドの既知の値は次のとおりです (将来、追加の理由が追加される可能性があります)。-SyncFailed: コントローラーでエラーが発生し、許可された中断の数を計算できませんでした。したがって、中断は許可されず、状態のステータスは False になります。- InsufficientPods:Pod の数は、PodDisruptionBudget で必要な数以下です。中断は許可されず、状態のステータスは False になります。- SufficientPods:PodDisruptionBudget で必要とされるよりも多くの Pod があります。条件は True になり、許可される中断の数は、disruptionsAllowed プロパティーによって提供されます。 | |
|
| 健康な Pod の現在の数 |
|
| 正常な Pod の最小希望数 |
| DisruptedPods には、API サーバーのエビクションサブリソースハンドラーによってエビクションが処理されたにもかかわらず、PodDisruptionBudget コントローラーには監視されていない Pod に関する情報が含まれています。Pod は、API サーバーが削除要求を処理してから、PDB コントローラーによって削除のマークが付けられた (またはタイムアウト後) と見なされるまで、このマップに含まれます。マップのキーは Pod の名前であり、値は API サーバーがエビクションリクエストを処理した時刻です。削除が行われず、Pod がまだ存在する場合は、しばらくすると PodDisruptionBudget コントローラーによって自動的にリストから削除されます。すべてが順調に進んだ場合、このマップはほとんどの時間空になっているはずです。マップ内のエントリーの数が多い場合は、Pod の削除に問題があることを示している可能性があります。 | |
|
| 現在許可されている Pod の中断の数。 |
|
| この混乱の予算によってカウントされた Pod の総数。 |
|
| この PDB ステータスを更新するときに観察された最新の世代。DisruptionsAllowed およびその他のステータス情報は、observedGeneration が PDB のオブジェクト生成と等しい場合にのみ有効です。 |
3.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/policy/v1/poddisruptionbudgets
-
GET
: PodDisruptionBudget の種類のオブジェクトをリスト表示または監視します。
-
/apis/policy/v1/watch/poddisruptionbudgets
-
GET
: PodDisruptionBudget のリストに対する個々の変更を監視します。非推奨: 代わりに、リスト操作で 'watch' パラメーターを使用してください。
-
/apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets
-
DELETE
: PodDisruptionBudget のコレクションを削除します。 -
GET
: PodDisruptionBudget の種類のオブジェクトをリスト表示または監視します。 -
POST
: PodDisruptionBudget を作成します。
-
/apis/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets
-
GET
: PodDisruptionBudget のリストに対する個々の変更を監視します。非推奨: 代わりに、リスト操作で 'watch' パラメーターを使用してください。
-
/apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}
-
DELETE
: PodDisruptionBudget を削除します。 -
GET
: 指定された PodDisruptionBudget を読み取ります。 -
PATCH
: 指定された PodDisruptionBudget を部分的に更新します。 -
PUT
: 指定された PodDisruptionBudget を置き換えます。
-
/apis/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}
-
GET
: 種類 PodDisruptionBudget のオブジェクトへの変更を監視します。非推奨: 代わりに、リスト操作で 'watch' パラメーターを使用し、'fieldSelector' パラメーターで単一の項目にフィルター処理します。
-
/apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status
-
GET
: 指定された PodDisruptionBudget のステータスを読み取ります。 -
PATCH
: 指定された PodDisruptionBudget のステータスを部分的に更新します。 -
PUT
: 指定された PodDisruptionBudget のステータスを置き換えます。
-
3.2.1. /apis/policy/v1/poddisruptionbudgets
- HTTP メソッド
-
GET
- 説明
- PodDisruptionBudget の種類のオブジェクトをリスト表示または監視します。
HTTP コード | レスポンスのボディー |
---|---|
200 - OK | |
401 - Unauthorized | 空白 |
3.2.2. /apis/policy/v1/watch/poddisruptionbudgets
- HTTP メソッド
-
GET
- 説明
- PodDisruptionBudget のリストに対する個々の変更を監視します。非推奨: 代わりに、リスト操作で 'watch' パラメーターを使用してください。
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
401 - Unauthorized | 空白 |
3.2.3. /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets
- HTTP メソッド
-
DELETE
- 説明
- PodDisruptionBudget のコレクションを削除します。
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
401 - Unauthorized | 空白 |
- HTTP メソッド
-
GET
- 説明
- PodDisruptionBudget の種類のオブジェクトをリスト表示または監視します。
HTTP コード | レスポンスのボディー |
---|---|
200 - OK | |
401 - Unauthorized | 空白 |
- HTTP メソッド
-
POST
- 説明
- PodDisruptionBudget を作成します。
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
パラメーター | 型 | 説明 |
---|---|---|
|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空白 |
3.2.4. /apis/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets
- HTTP メソッド
-
GET
- 説明
- PodDisruptionBudget のリストに対する個々の変更を監視します。非推奨: 代わりに、リスト操作で 'watch' パラメーターを使用してください。
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
401 - Unauthorized | 空白 |
3.2.5. /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}
パラメーター | 型 | 説明 |
---|---|---|
|
| PodDisruptionBudget の名前 |
- HTTP メソッド
-
DELETE
- 説明
- PodDisruptionBudget を削除します。
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
202 - Accepted |
|
401 - Unauthorized | 空白 |
- HTTP メソッド
-
GET
- 説明
- 指定された PodDisruptionBudget を読み取ります。
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
401 - Unauthorized | 空白 |
- HTTP メソッド
-
PATCH
- 説明
- 指定された PodDisruptionBudget を部分的に更新します。
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空白 |
- HTTP メソッド
-
PUT
- 説明
- 指定された PodDisruptionBudget を置き換えます
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
パラメーター | 型 | 説明 |
---|---|---|
|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空白 |
3.2.6. /apis/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}
パラメーター | 型 | 説明 |
---|---|---|
|
| PodDisruptionBudget の名前 |
- HTTP メソッド
-
GET
- 説明
- PodDisruptionBudget のようなオブジェクトへの変更を監視します。非推奨: 代わりに、リスト操作で 'watch' パラメーターを使用し、'fieldSelector' パラメーターで単一の項目にフィルター処理します。
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
401 - Unauthorized | 空白 |
3.2.7. /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status
パラメーター | 型 | 説明 |
---|---|---|
|
| PodDisruptionBudget の名前 |
- HTTP メソッド
-
GET
- 説明
- 指定された PodDisruptionBudget のステータスを読み取ります。
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
401 - Unauthorized | 空白 |
- HTTP メソッド
-
PATCH
- 説明
- 指定された PodDisruptionBudget のステータスを部分的に更新します。
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空白 |
- HTTP メソッド
-
PUT
- 説明
- 指定された PodDisruptionBudget のステータスを置き換えます。
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
パラメーター | 型 | 説明 |
---|---|---|
|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空白 |
Legal Notice
Copyright © 2024 Red Hat, Inc.
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.