第9章 Machine [machine.openshift.io/v1beta1]
- 説明
- machine は、マシン API 互換性レベル 2: メジャーリリース内で最低 9 か月または 3 つのマイナーリリース(いずれか長い方)の間安定しています。
- タイプ
-
object
9.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 を参照してください。 | |
|
| MachineSpec は、マシンの望ましい状態を定義します |
|
| MachineStatus は、マシンの監視状態を定義します |
9.1.1. .spec
- Description
- MachineSpec は、マシンの望ましい状態を定義します
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| LifecycleHooks を使用すると、ユーザーはマシンライフサイクル内の特定の事前に定義されたポイントでマシンの操作を一時停止できます。 |
|
| ObjectMeta は、作成されたノードに自動入力します。これを使用して、ノードの作成時に使用するラベル、アノテーション、名前接頭辞などを示します。 |
|
| ProviderID は、プロバイダーによって提供されたマシンの ID です。このフィールドは、このマシンに対応するノードオブジェクトに表示されるプロバイダー ID と一致する必要があります。このフィールドは、cluster-api の上位レベルのコンシューマーに必要です。ユースケースの例は、プロバイダーとして cluster-api を使用するクラスターオートスケーラーです。オートスケーラーのクリーンアップロジックは、マシンをノードと比較して、Kubernetes ノードとして登録できなかったプロバイダーのマシンを見つけます。オートスケーラーの一般的なツリー外プロバイダーとして cluster-api を使用する場合、このフィールドは、マシンのリストのプロバイダービューを持つことができるようにするためにオートスケーラーによって必要とされます。k8s apiserver からノードの別のリストが照会され、比較が行われて未登録のマシンが検出され、削除のマークが付けられます。このフィールドはアクチュエーターによって設定され、汎用プロバイダーとして cluster-api とインターフェイスするオートスケーラーなどの高レベルのエンティティーによって消費されます。 |
|
| ProviderSpec の詳細ノードの作成中に使用するプロバイダー固有の設定。 |
|
| 対応するノードに追加的に適用されるテイントのリスト。このリストは、他のエンティティーによって継続的にノードに追加された他のテイントを上書きしません。これらのテイントは積極的に調整する必要があります。たとえば、マシンコントローラーにテイントを適用するように依頼し、手動でテイントを除去すると、マシンコントローラーはテイントを元に戻します)、マシンコントローラーにテイントを除去させないでください。 |
|
| このテイントが接続されているノードは、テイントを許容しない Pod に影響を及ぼします。 |
9.1.2. .spec.lifecycleHooks
- 説明
- LifecycleHooks を使用すると、ユーザーはマシンライフサイクル内の特定の事前に定義されたポイントでマシンの操作を一時停止できます。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| preDrain フックは、マシンがドレインされないようにします。これにより、終了などの追加のライフサイクルイベントもブロックされます。 |
|
| LifecycleHook は、ライフサイクルフックの単一のインスタンスを表します |
|
| preTerminate フックは、マシンが終了されないようにします。preTerminate フックは、マシンがドレインされた後に処理されます。 |
|
| LifecycleHook は、ライフサイクルフックの単一のインスタンスを表します |
9.1.3. .spec.lifecycleHooks.preDrain
- 説明
- preDrain フックは、マシンがドレインされないようにします。これにより、終了などの追加のライフサイクルイベントもブロックされます。
- タイプ
-
array
9.1.4. .spec.lifecycleHooks.preDrain[]
- 説明
- LifecycleHook は、ライフサイクルフックの単一のインスタンスを表します
- タイプ
-
object
- 必須
-
name
-
owner
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| name は、リフリサイクルフックの一意の名前を定義します。名前は一意で説明的なものである必要があります。理想的には、CamelCase では 1-3 単語である必要があります。または、namespace を使用する場合があります(例:foo.example.com/CamelCase)。名前は一意でなければならず、単一のエンティティーでのみ管理する必要があります。 |
|
| 所有者はライフサイクルフックの所有者を定義します。これは、ユーザーがライフサイクルをブロックするユーザーを識別できるように、わかりやすいものである必要があります。これは、コントローラーの名前(clusteroperator/etcd など)またはフックを管理する管理者である可能性があります。 |
9.1.5. .spec.lifecycleHooks.preTerminate
- 説明
- preTerminate フックは、マシンが終了されないようにします。preTerminate フックは、マシンがドレインされた後に処理されます。
- タイプ
-
array
9.1.6. .spec.lifecycleHooks.preTerminate[]
- 説明
- LifecycleHook は、ライフサイクルフックの単一のインスタンスを表します
- タイプ
-
object
- 必須
-
name
-
owner
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| name は、リフリサイクルフックの一意の名前を定義します。名前は一意で説明的なものである必要があります。理想的には、CamelCase では 1-3 単語である必要があります。または、namespace を使用する場合があります(例:foo.example.com/CamelCase)。名前は一意でなければならず、単一のエンティティーでのみ管理する必要があります。 |
|
| 所有者はライフサイクルフックの所有者を定義します。これは、ユーザーがライフサイクルをブロックするユーザーを識別できるように、わかりやすいものである必要があります。これは、コントローラーの名前(clusteroperator/etcd など)またはフックを管理する管理者である可能性があります。 |
9.1.7. .spec.metadata
- Description
- ObjectMeta は、作成されたノードに自動入力します。これを使用して、ノードの作成時に使用するラベル、アノテーション、名前接頭辞などを示します。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| アノテーションは、任意のメタデータを保存し、取得するために外部ツールで設定できる、リソースとともに保存される構造化されていないキー値のマップです。これらはクエリーできないため、オブジェクトを変更する場合に維持する必要があります。詳細: http://kubernetes.io/docs/user-guide/annotations |
|
| generateName は、Name フィールドが指定されていない場合に限り一意の名前を生成するためにサーバーが使用するオプションの接頭辞です。このフィールドを使用する場合、クライアントに返される名前は渡された名前とは異なります。この値は、一意の接尾辞とも組み合わされます。提供された値には、名前フィールドと同じ検証ルールがあり、サーバー上で値を一意にするために必要な接尾辞の長さで切り捨てられる場合があります。このフィールドが指定されており、生成された名前が存在する場合、サーバーは 409 を返しません。代わりに、割り当てられた時間内に一意の名前が見つからなかったことを示す ReasonServerTimeout で 201Created または 500 を返します。クライアントは再試行する必要があります (オプションで、Retry-After ヘッダーに示されている時間の後)。Name が指定されていない場合にのみ適用されます。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency |
|
| オブジェクトの整理と分類 (スコープと選択) に使用できる文字列キーと値のマップ。レプリケーションコントローラーおよびサービスのセレクターと一致する場合があります。詳細: http://kubernetes.io/docs/user-guide/labels |
|
| name は namespace 内で一意である必要があります。リソースの作成時に必要ですが、リソースによっては、クライアントが適切な名前の生成を自動的に要求することを許可する場合があります。name は、主にべき等性と設定定義の作成を目的としています。更新はできません。詳細: http://kubernetes.io/docs/user-guide/identifiers#names |
|
| 名前空間は、各名前内のスペースが一意である必要があることを定義します。空の namespace は "default" の namespace と同じですが、"default" は正規表現です。すべてのオブジェクトを namespace のスコープに設定する必要はありません。それらのオブジェクトでは、このフィールドの値は空になります。DNS_LABEL である必要があります。更新はできません。詳細: http://kubernetes.io/docs/user-guide/namespaces |
|
| このオブジェクトが依存するオブジェクトのリスト。リスト内のすべてのオブジェクトが削除されている場合、このオブジェクトはガベージコレクションされます。このオブジェクトがコントローラーによって管理されている場合、このリストのエントリーは、コントローラーフィールドが true に設定されたこのコントローラーを指します。複数の管理コントローラーが存在することはできません。 |
|
| OwnerReference には、所有するオブジェクトを識別できるようにするための十分な情報が含まれています。所有するオブジェクトは、依存オブジェクトと同じ名前空間にあるか、クラスタースコープである必要があるため、名前空間フィールドはありません。 |
9.1.8. .spec.metadata.ownerReferences
- Description
- このオブジェクトが依存するオブジェクトのリスト。リスト内のすべてのオブジェクトが削除されている場合、このオブジェクトはガベージコレクションされます。このオブジェクトがコントローラーによって管理されている場合、このリストのエントリーは、コントローラーフィールドが true に設定されたこのコントローラーを指します。複数の管理コントローラーが存在することはできません。
- タイプ
-
array
9.1.9. .spec.metadata.ownerReferences[]
- Description
- OwnerReference には、所有するオブジェクトを識別できるようにするための十分な情報が含まれています。所有するオブジェクトは、依存オブジェクトと同じ名前空間にあるか、クラスタースコープである必要があるため、名前空間フィールドはありません。
- タイプ
-
object
- 必須
-
apiVersion
-
kind
-
name
-
uid
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| 参照先の API バージョン。 |
|
| true の場合、および所有者が foregroundDeletion ファイナライザーを持っている場合、この参照が削除されるまで、所有者を Key-Value ストアから削除することはできません。ガベージコレクターがこのフィールドと対話し、フォアグラウンドを強制的に削除する方法は、https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion を参照してください。デフォルトは false です。このフィールドを設定するには、ユーザーは所有者の削除権限を必要とします。そうしないと、422(処理不能エンティティー) が返されます。 |
|
| true の場合、この参照は管理コントローラーを指します。 |
|
| 参照先の種類。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
|
| 参照先の名前。詳細: http://kubernetes.io/docs/user-guide/identifiers#names |
|
| 参照先の UID。詳細: http://kubernetes.io/docs/user-guide/identifiers#uids |
9.1.10. .spec.providerSpec
- Description
- ProviderSpec の詳細ノードの作成中に使用するプロバイダー固有の設定。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
| `` | 値は、リソース設定のインライン化されたシリアル化された表現です。プロバイダーは、コンポーネント設定と同様に、このフィールドからシリアル化/逆シリアル化する必要がある独自のバージョン管理された API タイプを維持することを推奨します。 |
9.1.11. .spec.taints
- Description
- 対応するノードに追加的に適用されるテイントのリスト。このリストは、他のエンティティーによって継続的にノードに追加された他のテイントを上書きしません。これらのテイントは積極的に調整する必要があります。たとえば、マシンコントローラーにテイントを適用するように依頼し、手動でテイントを除去すると、マシンコントローラーはテイントを元に戻します)、マシンコントローラーにテイントを除去させないでください。
- タイプ
-
array
9.1.12. .spec.taints[]
- 説明
- このテイントが接続されているノードは、テイントを許容しない Pod に影響を及ぼします。
- タイプ
-
object
- 必須
-
effect
-
key
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| 必須。テイントを許容しない Pod に対するテイントの影響。有効な効果は、NoSchedule、PreferNoSchedule、および NoExecute です。 |
|
| 必須。ノードに適用されるテイントキー。 |
|
| TimeAdded は、テイントが追加された時刻を表します。NoExecute テイントのためにのみ書かれています。 |
|
| テイントキーに対応するテイント値。 |
9.1.13. .status
- Description
- MachineStatus は、マシンの監視状態を定義します
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| アドレスは、マシンに割り当てられたアドレスのリストです。可能な場合は、クラウドプロバイダーから照会されます。 |
|
| NodeAddress には、ノードのアドレスに関する情報が含まれています。 |
|
| 条件は、マシンの現在の状態を定義します |
|
| 条件は、MachineAPI リソースの動作状態の監視を定義します。 |
|
| ErrorMessage は、マシンの調整に最終的な問題が発生した場合に設定され、ロギングと人間による消費に適したより詳細な文字列が含まれます。このフィールドは、時間の経過とともに自動的に修正されることが予想される、コントローラーが直面する推移的なエラー (サービスの停止など) には設定しないでください。代わりに、マシンの仕様またはコントローラーの設定に根本的な問題があること、およびそのマニュアルを示します。介入が必要です。ターミナルエラーの例としては、仕様の設定の無効な組み合わせ、コントローラーでサポートされていない値、または責任のあるコントローラー自体が重大に誤って設定されていることが挙げられます。マシンの調整中に発生する一時的なエラーは、イベントとしてマシンオブジェクトに追加したり、コントローラーの出力に記録したりできます。 |
|
| ErrorReason は、マシンの調整に最終的な問題が発生した場合に設定され、マシンの解釈に適した簡潔な値が含まれます。このフィールドは、時間の経過とともに自動的に修正されることが予想される、コントローラーが直面する推移的なエラー (サービスの停止など) には設定しないでください。代わりに、マシンの仕様またはコントローラーの設定に根本的な問題があること、およびそのマニュアルを示します。介入が必要です。ターミナルエラーの例としては、仕様の設定の無効な組み合わせ、コントローラーでサポートされていない値、または責任のあるコントローラー自体が重大に誤って設定されていることが挙げられます。マシンの調整中に発生する一時的なエラーは、イベントとしてマシンオブジェクトに追加したり、コントローラーの出力に記録したりできます。 |
|
| LastOperation は、マシンコントローラーによって実行される最後の操作を記述します。この API は、特定のマシンで実行された最新の操作に関する履歴として役立つはずです。また、最新の操作の状態を伝える必要があります。たとえば、それがまだ進行中、失敗、または正常に完了した場合などです。 |
|
| LastUpdated は、このステータスが最後に観察された日時を識別します。 |
|
| NodeRef は、対応するノードが存在する場合はそれを指します。 |
|
| フェーズは、機械作動の現在のフェーズを表します。失敗、プロビジョニング、プロビジョニング、実行、削除のいずれか |
| `` | ProviderStatus は、プロバイダー固有のステータスの詳細を示します。プロバイダーは、このフィールドからシリアル化/逆シリアル化する必要がある独自のバージョン管理された API タイプを維持することを推奨します。 |
9.1.14. .status.addresses
- Description
- アドレスは、マシンに割り当てられたアドレスのリストです。可能な場合は、クラウドプロバイダーから照会されます。
- タイプ
-
array
9.1.15. .status.addresses[]
- 説明
- NodeAddress には、ノードのアドレスに関する情報が含まれています。
- タイプ
-
object
- 必須
-
address
-
type
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| ノードアドレス。 |
|
| ノードアドレスタイプ。ホスト名、ExternalIP、または InternalIP のいずれか。 |
9.1.16. .status.conditions
- Description
- 条件は、マシンの現在の状態を定義します
- タイプ
-
array
9.1.17. .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 を参照)、競合を解消する機能が重要です。 |
9.1.18. .status.lastOperation
- Description
- LastOperation は、マシンコントローラーによって実行される最後の操作を記述します。この API は、特定のマシンで実行された最新の操作に関する履歴として役立つはずです。また、最新の操作の状態を伝える必要があります。たとえば、それがまだ進行中、失敗、または正常に完了した場合などです。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| 説明は、最後の操作の人間が読める形式の説明です。 |
|
| LastUpdated は、LastOperationAPI が最後に更新されたタイムスタンプです。 |
|
| 状態は、最後に実行された操作の現在のステータスです。例:処理中、失敗、成功など |
|
| タイプは、最後に実行された操作のタイプです。例:作成、削除、更新など |
9.1.19. .status.nodeRef
- Description
- NodeRef は、対応するノードが存在する場合はそれを指します。
- タイプ
-
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 |