第10章 MachineSet [machine.openshift.io/v1beta1]
- Description
- MachineSet は、指定された数のマシンレプリカが常に実行されていることを確認します。互換性レベル 2: メジャーリリース内で最低 9 カ月間、または 3 つのマイナーリリース (どちらか長い方) で安定しています。
- タイプ
-
object
10.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 を参照してください。 | |
|
| MachineSetSpec は、MachineSet の望ましい状態を定義します |
|
| MachineSetStatus は、MachineSet の監視状態を定義します |
10.1.1. .spec
- Description
- MachineSetSpec は、MachineSet の望ましい状態を定義します
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| DeletePolicy は、ダウンスケーリング時に削除するノードを識別するために使用されるポリシーを定義します。デフォルトはランダムです。有効な値は Random、Newest、Oldest です。 |
|
| MinReadySeconds は、新しく作成されたマシンの準備ができる最小秒数です。デフォルトは 0 です (マシンは準備ができ次第利用可能と見なされます) |
|
| レプリカは、必要なレプリカの数です。これは、明示的なゼロと指定されていないものを区別するためのポインターです。デフォルトは 1 です。 |
|
| セレクターは、レプリカ数と一致する必要があるマシンに対するラベルクエリーです。この MachineSet によって制御されるために一致する必要があるキーと値にラベルを付けます。マシンテンプレートのラベルと一致する必要があります。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors |
|
| テンプレートは、不十分なレプリカが検出された場合に作成されるマシンを説明するオブジェクトです。 |
10.1.2. .spec.selector
- Description
- セレクターは、レプリカ数と一致する必要があるマシンに対するラベルクエリーです。この MachineSet によって制御されるために一致する必要があるキーと値にラベルを付けます。マシンテンプレートのラベルと一致する必要があります。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。 |
|
| ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。 |
|
| matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。 |
10.1.3. .spec.selector.matchExpressions
- Description
- matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。
- タイプ
-
array
10.1.4. .spec.selector.matchExpressions[]
- Description
- ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。
- タイプ
-
object
- 必須
-
key
-
operator
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| key は、セレクターの適用先のラベルキーです。 |
|
| operator はキーと値のセットの関係を表します。有効な演算子は In、NotIn、Exists、および DoesNotExist です。 |
|
| values は文字列値の配列です。operator が In または NotIn の場合には、values 配列を空白にできません。operator が Exists または DoesNotExist の場合には、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。 |
10.1.5. .spec.template
- Description
- テンプレートは、不十分なレプリカが検出された場合に作成されるマシンを説明するオブジェクトです。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 |
|
| Pod に期待される動作の仕様。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
10.1.6. .spec.template.metadata
- Description
- 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。
- タイプ
-
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 には、所有するオブジェクトを識別できるようにするための十分な情報が含まれています。所有するオブジェクトは、依存オブジェクトと同じ名前空間にあるか、クラスタースコープである必要があるため、名前空間フィールドはありません。 |
10.1.7. .spec.template.metadata.ownerReferences
- Description
- このオブジェクトが依存するオブジェクトのリスト。リスト内のすべてのオブジェクトが削除されている場合、このオブジェクトはガベージコレクションされます。このオブジェクトがコントローラーによって管理されている場合、このリストのエントリーは、コントローラーフィールドが true に設定されたこのコントローラーを指します。複数の管理コントローラーが存在することはできません。
- タイプ
-
array
10.1.8. .spec.template.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 を参照してください。 |
|
| 参照先の名前。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names |
|
| 参照先の UID。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids |
10.1.9. .spec.template.spec
- Description
- Pod に期待される動作の仕様。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| LifecycleHooks を使用すると、ユーザーはマシンライフサイクル内の特定の事前に定義されたポイントでマシンの操作を一時停止できます。 |
|
| ObjectMeta は、作成されたノードに自動入力します。これを使用して、ノードの作成時に使用するラベル、アノテーション、名前接頭辞などを示します。 |
|
| ProviderID は、プロバイダーによって提供されたマシンの ID です。このフィールドは、このマシンに対応するノードオブジェクトに表示されるプロバイダー ID と一致する必要があります。このフィールドは、cluster-api の上位レベルのコンシューマーに必要です。ユースケースの例は、プロバイダーとして cluster-api を使用するクラスターオートスケーラーです。オートスケーラーのクリーンアップロジックは、マシンをノードと比較して、Kubernetes ノードとして登録できなかったプロバイダーのマシンを見つけます。オートスケーラーの一般的なツリー外プロバイダーとして cluster-api を使用する場合、このフィールドは、マシンのリストのプロバイダービューを持つことができるようにするためにオートスケーラーによって必要とされます。k8s apiserver からノードの別のリストが照会され、比較が行われて未登録のマシンが検出され、削除のマークが付けられます。このフィールドはアクチュエーターによって設定され、汎用プロバイダーとして cluster-api とインターフェイスするオートスケーラーなどの高レベルのエンティティーによって消費されます。 |
|
| ProviderSpec の詳細ノードの作成中に使用するプロバイダー固有の設定。 |
|
| 対応するノードに追加的に適用されるテイントのリスト。このリストは、他のエンティティーによって継続的にノードに追加された他のテイントを上書きしません。これらのテイントは積極的に調整する必要があります。たとえば、マシンコントローラーにテイントを適用するように依頼し、手動でテイントを除去すると、マシンコントローラーはテイントを元に戻します)、マシンコントローラーにテイントを除去させないでください。 |
|
| このテイントが接続されているノードは、テイントを許容しない Pod に影響を及ぼします。 |
10.1.10. .spec.template.spec.lifecycleHooks
- 説明
- LifecycleHooks を使用すると、ユーザーはマシンライフサイクル内の特定の事前に定義されたポイントでマシンの操作を一時停止できます。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| preDrain フックは、マシンがドレインされないようにします。これにより、終了などの追加のライフサイクルイベントもブロックされます。 |
|
| LifecycleHook は、ライフサイクルフックの単一のインスタンスを表します |
|
| preTerminate フックは、マシンが終了されないようにします。preTerminate フックは、マシンがドレインされた後に処理されます。 |
|
| LifecycleHook は、ライフサイクルフックの単一のインスタンスを表します |
10.1.11. .spec.template.spec.lifecycleHooks.preDrain
- 説明
- preDrain フックは、マシンがドレインされないようにします。これにより、終了などの追加のライフサイクルイベントもブロックされます。
- タイプ
-
array
10.1.12. .spec.template.spec.lifecycleHooks.preDrain[]
- 説明
- LifecycleHook は、ライフサイクルフックの単一のインスタンスを表します
- タイプ
-
object
- 必須
-
name
-
owner
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| name は、リフリサイクルフックの一意の名前を定義します。名前は一意で説明的なものである必要があります。理想的には、CamelCase では 1-3 単語である必要があります。または、namespace を使用する場合があります(例:foo.example.com/CamelCase)。名前は一意でなければならず、単一のエンティティーでのみ管理する必要があります。 |
|
| 所有者はライフサイクルフックの所有者を定義します。これは、ユーザーがライフサイクルをブロックするユーザーを識別できるように、わかりやすいものである必要があります。これは、コントローラーの名前(clusteroperator/etcd など)またはフックを管理する管理者である可能性があります。 |
10.1.13. .spec.template.spec.lifecycleHooks.preTerminate
- 説明
- preTerminate フックは、マシンが終了されないようにします。preTerminate フックは、マシンがドレインされた後に処理されます。
- タイプ
-
array
10.1.14. .spec.template.spec.lifecycleHooks.preTerminate[]
- 説明
- LifecycleHook は、ライフサイクルフックの単一のインスタンスを表します
- タイプ
-
object
- 必須
-
name
-
owner
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| name は、リフリサイクルフックの一意の名前を定義します。名前は一意で説明的なものである必要があります。理想的には、CamelCase では 1-3 単語である必要があります。または、namespace を使用する場合があります(例:foo.example.com/CamelCase)。名前は一意でなければならず、単一のエンティティーでのみ管理する必要があります。 |
|
| 所有者はライフサイクルフックの所有者を定義します。これは、ユーザーがライフサイクルをブロックするユーザーを識別できるように、わかりやすいものである必要があります。これは、コントローラーの名前(clusteroperator/etcd など)またはフックを管理する管理者である可能性があります。 |
10.1.15. .spec.template.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 には、所有するオブジェクトを識別できるようにするための十分な情報が含まれています。所有するオブジェクトは、依存オブジェクトと同じ名前空間にあるか、クラスタースコープである必要があるため、名前空間フィールドはありません。 |
10.1.16. .spec.template.spec.metadata.ownerReferences
- Description
- このオブジェクトが依存するオブジェクトのリスト。リスト内のすべてのオブジェクトが削除されている場合、このオブジェクトはガベージコレクションされます。このオブジェクトがコントローラーによって管理されている場合、このリストのエントリーは、コントローラーフィールドが true に設定されたこのコントローラーを指します。複数の管理コントローラーが存在することはできません。
- タイプ
-
array
10.1.17. .spec.template.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 を参照してください。 |
|
| 参照先の名前。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names |
|
| 参照先の UID。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids |
10.1.18. .spec.template.spec.providerSpec
- Description
- ProviderSpec の詳細ノードの作成中に使用するプロバイダー固有の設定。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
| `` | 値は、リソース設定のインライン化されたシリアル化された表現です。プロバイダーは、コンポーネント設定と同様に、このフィールドからシリアル化/逆シリアル化する必要がある独自のバージョン管理された API タイプを維持することを推奨します。 |
10.1.19. .spec.template.spec.taints
- Description
- 対応するノードに追加的に適用されるテイントのリスト。このリストは、他のエンティティーによって継続的にノードに追加された他のテイントを上書きしません。これらのテイントは積極的に調整する必要があります。たとえば、マシンコントローラーにテイントを適用するように依頼し、手動でテイントを除去すると、マシンコントローラーはテイントを元に戻します)、マシンコントローラーにテイントを除去させないでください。
- タイプ
-
array
10.1.20. .spec.template.spec.taints[]
- Description
- このテイントが接続されているノードは、テイントを許容しない Pod に影響を及ぼします。
- タイプ
-
object
- 必須
-
effect
-
key
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| 必須。テイントを許容しない Pod に対するテイントの影響。有効な効果は、NoSchedule、PreferNoSchedule、および NoExecute です。 |
|
| 必須。ノードに適用されるテイントキー。 |
|
| TimeAdded は、テイントが追加された時刻を表します。NoExecute テイントのためにのみ書かれています。 |
|
| テイントキーに対応するテイント値。 |
10.1.21. .status
- Description
- MachineSetStatus は、MachineSet の監視状態を定義します
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| この MachineSet で使用可能なレプリカの数 (少なくとも minReadySeconds の準備ができています)。 |
|
| |
|
| レプリカの調整で最終的な問題が発生した場合は、ErrorReason と ErrorMessage の両方が設定されます。ErrorReason には、マシンの解釈に適した簡潔な値が入力されますが、ErrorMessage には、ロギングと人間による消費に適したより詳細な文字列が含まれます。これらのフィールドは、時間の経過とともに自動的に修正されると予想されるコントローラーが直面する推移的なエラー (サービスの停止など) に対して設定するべきではありませんが、代わりに、MachineTemplate の仕様またはマシンコントローラーの設定に根本的な問題があることを示します。手動による介入が必要です。ターミナルエラーの例としては、仕様の設定の無効な組み合わせ、マシンコントローラーでサポートされていない値、または責任のあるマシンコントローラー自体が重大に誤って設定されていることが挙げられます。マシンの調整中に発生する一時的なエラーは、イベントとして MachineSet オブジェクトに追加したり、コントローラーの出力に記録したりできます。 |
|
| MachineSet のマシンテンプレートのラベルと一致するラベルを持つレプリカの数。 |
|
| ObservedGeneration は、最後に観察された MachineSet の生成を反映します。 |
|
| この MachineSet の準備ができているレプリカの数。ノードが作成され、準備完了になると、マシンは準備完了と見なされます。 |
|
| レプリカは、最近観察されたレプリカの数です。 |