第8章 MachineHealthCheck [machine.openshift.io/v1beta1]
- 説明
- MachineHealthCheck は、マシンのヘルスチェック API 互換性レベル 2: メジャーリリース内で最低 9 か月または 3 つのマイナーリリース(どちらか長い方)の間安定しています。
- タイプ
-
object
8.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 を参照してください。 | |
|
| マシンヘルスチェックポリシーの仕様 |
|
| MachineHealthCheck リソースの最近観察されたステータス |
8.1.1. .spec
- Description
- マシンヘルスチェックポリシーの仕様
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| それ以上の修復は、セレクターによって選択された最大で MaxUnhealthy マシンが正常でない場合にのみ許可されます。正の整数値またはパーセンテージ値のいずれかを期待します。パーセンテージ値は正の整数でなければならず、100% を上限とします。0% と 0% の両方が有効であり、すべての修復をブロックします。 |
|
| ノードのないこの期間より古いマシンは、障害が発生したと見なされ、修正されます。ノードのないマシンが削除されないようにするには、この値を明示的に 0 に設定して起動チェックを無効にします。それぞれオプションの分数と単位接尾辞が付いた 10 進数の符号なし期間文字列 (300ms、1.5h、2h45m など) が必要です。有効な時間単位は、ns、us (またはµs)、ms、s、m、h です。 |
|
| RemediationTemplate は、インフラストラクチャープロバイダーによって提供される修復テンプレートへの参照です。このフィールドは完全にオプションです。入力すると、MachineHealthCheck コントローラーは、参照されるテンプレートから新しいオブジェクトを作成し、マシンの修復を MachineAPIOperator の外部にあるコントローラーに渡します。 |
|
| ヘルスが行使されるマシンに一致するようにセレクターにラベルを付けます。注: 空のセレクターはすべてのマシンに一致します。 |
|
| UnhealthyConditions には、ノードが異常であると見なされるかどうかを決定する条件のリストが含まれています。条件は論理 OR で結合されます。つまり、条件のいずれかが満たされた場合、ノードは異常です。 |
|
| UnhealthyCondition は、期間として指定されたタイムアウトを持つノード条件タイプと値を表します。指定された条件が少なくともタイムアウト値の間指定されたステータスにある場合、ノードは異常であると見なされます。 |
8.1.2. .spec.remediationTemplate
- Description
- RemediationTemplate は、インフラストラクチャープロバイダーによって提供される修復テンプレートへの参照です。このフィールドは完全にオプションです。入力すると、MachineHealthCheck コントローラーは、参照されるテンプレートから新しいオブジェクトを作成し、マシンの修復を MachineAPIOperator の外部にあるコントローラーに渡します。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| 参照先の API バージョン。 |
|
| オブジェクト全体ではなく一部を参照する場合に、この文字列には、desiredState.manifest.containers[2] など、有効な JSON/Go フィールドアクセスステートメントを含める必要があります。たとえば、オブジェクトの参照先が Pod 内のコンテナーの場合には、"spec.containers{name}" などの値に設定されます ("name" はイベントをトリガーしたコンテナー名に置き換えます)。またはコンテナー名が指定されていない場合には、"spec.containers[2]" の値に設定されます (この Pod 内でインデックスが 2 のコンテナー)。この構文が選択された唯一の理由は、オブジェクトの一部の参照を明確に定義するためです。TODO: この設計は最終版ではないので今後このフィールドは変更される可能性があります。 |
|
| 参照先の種類。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
|
| 参照先の名前。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 参照先の namespace。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| この参照が作成される特定の resourceVersion (ある場合)。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
| 参照先の UID。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids |
8.1.3. .spec.selector
- Description
- ヘルスが行使されるマシンに一致するようにセレクターにラベルを付けます。注: 空のセレクターはすべてのマシンに一致します。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。 |
|
| ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。 |
|
| matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。 |
8.1.4. .spec.selector.matchExpressions
- Description
- matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。
- タイプ
-
array
8.1.5. .spec.selector.matchExpressions[]
- Description
- ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。
- タイプ
-
object
- 必須
-
key
-
operator
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| key は、セレクターの適用先のラベルキーです。 |
|
| operator はキーと値のセットの関係を表します。有効な演算子は In、NotIn、Exists、および DoesNotExist です。 |
|
| values は文字列値の配列です。operator が In または NotIn の場合には、values 配列を空白にできません。operator が Exists または DoesNotExist の場合には、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。 |
8.1.6. .spec.unhealthyConditions
- Description
- UnhealthyConditions には、ノードが異常であると見なされるかどうかを決定する条件のリストが含まれています。条件は論理 OR で結合されます。つまり、条件のいずれかが満たされた場合、ノードは異常です。
- タイプ
-
array
8.1.7. .spec.unhealthyConditions[]
- Description
- UnhealthyCondition は、期間として指定されたタイムアウトを持つノード条件タイプと値を表します。指定された条件が少なくともタイムアウト値の間指定されたステータスにある場合、ノードは異常であると見なされます。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| |
|
| それぞれオプションの分数と単位接尾辞が付いた 10 進数の符号なし期間文字列 (300ms、1.5h、2h45m など) が必要です。有効な時間単位は、ns、us (またはµs)、ms、s、m、h です。 |
|
|
8.1.8. .status
- Description
- MachineHealthCheck リソースの最近観察されたステータス
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| 条件は、MachineHealthCheck の現在の状態を定義します |
|
| 条件は、MachineAPI リソースの動作状態の監視を定義します。 |
|
| このマシンヘルスチェックでカウントされたマシンの総数 |
|
| このマシンヘルスチェックでカウントされたマシンの総数 |
|
| RemediationsAllowed は、maxUnhealthy 短絡が適用される前に、このマシンヘルスチェックによって許可される追加の修復の数です。 |
8.1.9. .status.conditions
- Description
- 条件は、MachineHealthCheck の現在の状態を定義します
- タイプ
-
array
8.1.10. .status.conditions[]
- Description
- 条件は、MachineAPI リソースの動作状態の監視を定義します。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| 最後にある状態から別の状態に遷移した時間。これは、基本的な条件が変更された時点となります。不明な場合には、API フィールドが変更された時点を使用することも可能です。 |
|
| 遷移の詳細を示す人が判読できるメッセージ。このフィールドは空の場合があります。 |
|
| キャメルケースでの状態の最後の遷移の理由。特定の API は、このフィールドが保証された API と見なされるかどうかを選択できます。このフィールドには空白を指定できません。 |
|
| 重大度は理由コードの明示的な分類を提供するため、ユーザーまたはマシンは現在の状況を即座に理解し、それに応じて行動することができます。Severity フィールドは、Status=False の場合にのみ設定する必要があります。 |
|
| 状態のステータス、True、False、Unknown のいずれか。 |
|
| CamelCase または foo.example.com/CamelCase の条件のタイプ。多くの.condition.type 値は、Available などのリソース全体で一貫していますが、任意の条件が役立つ可能性があるため (.node.status.conditions を参照)、競合を解消する機能が重要です。 |