第17章 StatefulSet [apps/v1]
- 説明
StatefulSet は、一貫した ID を持つ Pod のセットを表します。ID は次のように定義されます。- ネットワーク: 単一の安定した DNS およびホスト名。- ストレージ: 要求された数の VolumeClaim。
StatefulSet は、特定のネットワーク ID が常に同じストレージ ID にマップされることを保証します。
- タイプ
-
object
17.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 を参照してください。 | |
|
| StatefulSetSpec は、StatefulSet の仕様です。 |
|
| StatefulSetStatus は、StatefulSet の現在の状態を表します。 |
17.1.1. .spec
- 説明
- StatefulSetSpec は、StatefulSet の仕様です。
- タイプ
-
object
- 必須
-
selector
-
template
-
serviceName
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| 新しく作成された Pod が使用可能であると見なされるために、コンテナーがクラッシュすることなく準備ができる最小秒数。デフォルトは 0 です (Pod は準備ができ次第利用可能と見なされます) |
|
| StatefulSetOrdinals は、この StatefulSet でのレプリカ順序割り当てに使用されるポリシーを記述します。 |
|
| StatefulSetPersistentVolumeClaimRetentionPolicy は、StatefulSet VolumeClaimTemplate から作成された PVC に使用されるポリシーを記述します。 |
|
|
podManagementPolicy は、初期スケールアップ時、ノード上の Pod の交換時、またはスケールダウン時に Pod を作成する方法を制御します。デフォルトのポリシーは
使用可能な列挙値: - |
|
| レプリカは、指定した Template のレプリカの希望する数です。これらは、同じ Template のインスタンス化であるという意味でレプリカですが、個々のレプリカにも一貫した ID があります。指定しない場合、デフォルトは 1 です。 |
|
| revisionHistoryLimit は、StatefulSet のリビジョン履歴に保持されるリビジョンの最大数です。リビジョン履歴は、現在適用されている StatefulSetSpec バージョンで表されていないすべてのリビジョンで設定されます。デフォルト値は 10 です。 |
| selector は、レプリカ数と一致する必要がある Pod に対するラベルクエリーです。Pod テンプレートのラベルと一致する必要があります。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors | |
|
| serviceName は、この StatefulSet を管理するサービスの名前です。このサービスは StatefulSet の前に存在する必要があり、セットのネットワーク ID を担当します。Pod は、pod-specific-string.serviceName.default.svc.cluster.local のパターンに従う DNS/ホスト名を取得します。ここで、"pod-specific-string" は StatefulSet コントローラーによって管理されます。 |
| テンプレートは、不十分なレプリカが検出された場合に作成される Pod を説明するオブジェクトです。StatefulSet によりスタンプされた各 Pod はこのテンプレートを満たしますが、StatefulSet の残りの部分とは異なる一意の ID を持ちます。各 Pod には、<statefulsetname>-<podindex> の形式で名前が付けられます。たとえば、インデックス番号 3 を持つ web という名前の StatefulSet 内の Pod は、web-3 という名前になります。 | |
|
| StatefulSetUpdateStrategy は、StatefulSet コントローラーが更新を実行するのに使用する戦略を示します。示された戦略の更新を実行するのに必要な追加のパラメーターが含まれています。 |
| volumeClaimTemplates は、Pod が参照できるクレームのリストです。StatefulSet コントローラーは、Pod の ID を維持する方法で、ネットワーク ID をクレームにマッピングするロールを果たします。このリストのすべてのクレームには、テンプレートの 1 つのコンテナーに (名前で) 一致する volumeMount が 1 つ以上含まれている必要があります。このリストのクレームは、同じ名前のテンプレート内のどのボリュームよりも優先されます。 |
17.1.2. .spec.ordinals
- 説明
- StatefulSetOrdinals は、この StatefulSet でのレプリカ順序割り当てに使用されるポリシーを記述します。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| start は、最初のレプリカのインデックスを表す番号です。これを使用すると、デフォルトの 0 から始まるインデックス名ではなく、別のインデックス (例: 1 から始まるインデックス) からレプリカに番号を付けるか、別の StatefulSet へのレプリカの段階的な移動をオーケストレーションすることができます。設定されている場合、レプリカインデックスは .spec.ordinals.start、.spec.ordinals.start + .spec.replicas) の範囲になります。設定されていない場合、デフォルトは 0 です。レプリカのインデックスは [0、.spec.replicas) の範囲になります。 |
17.1.3. .spec.persistentVolumeClaimRetentionPolicy
- 説明
- StatefulSetPersistentVolumeClaimRetentionPolicy は、StatefulSet VolumeClaimTemplate から作成された PVC に使用されるポリシーを記述します。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
|
WhenDeleted は、StatefulSet が削除されたときに、StatefulSet VolumeClaimTemplates から作成された PVC に何が起こるかを指定します。 |
|
|
WhenScaled は、StatefulSet がスケールダウンされたときに StatefulSet VolumeClaimTemplates から作成された PVC に何が起こるかを指定します。 |
17.1.4. .spec.updateStrategy
- 説明
- StatefulSetUpdateStrategy は、StatefulSet コントローラーが更新を実行するのに使用する戦略を示します。示された戦略の更新を実行するのに必要な追加のパラメーターが含まれています。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| RollingUpdateStatefulSetStrategy は、RollingUpdateStatefulSetStrategyType のパラメーターを伝達するのに使用されます。 |
|
| タイプは、StatefulSetUpdateStrategy のタイプを示します。デフォルトは RollingUpdate です。
可能な列挙値: - |
17.1.5. .spec.updateStrategy.rollingUpdate
- 説明
- RollingUpdateStatefulSetStrategy は、RollingUpdateStatefulSetStrategyType のパラメーターを伝達するのに使用されます。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
| 更新中に使用できなくなる可能性のある Pod の最大数。値は、絶対数 (例:5) または目的の Pod のパーセンテージ (例:10%) にすることができます。絶対数は、端数を切り上げてパーセンテージから計算されます。これは 0 にすることはできません。デフォルトは 1 です。このフィールドはアルファレベルであり、MaxUnavailableStatefulSet 機能を有効にするサーバーでのみ認識されます。このフィールドは、0 から Replicas-1 の範囲内のすべての Pod に適用されます。つまり、0 から Replicas-1 までの範囲内に使用できない Pod がある場合は、MaxUnavailable にカウントされます。 | |
|
| Partition は、StatefulSet をパーティション分割して更新する序数を示します。ローリング更新時に、通常の Replicas-1 からパーティションへのすべての Pod が更新されます。パーティション 1 から 0 までの Pod はどれも変更されません。これは、カナリアベースのデプロイメントを実行できるようにするのに役立ちます。デフォルト値は 0 です。 |
17.1.6. .status
- 説明
- StatefulSetStatus は、StatefulSet の現在の状態を表します。
- タイプ
-
object
- 必須
-
replicas
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| この statefulset の対象となる利用可能な Pod (少なくとも minReadySeconds の準備ができている) の総数。 |
|
| collisionCount は、StatefulSet のハッシュ競合の数です。StatefulSet コントローラーは、最新の ControllerRevision の名前を作成する必要がある場合に、このフィールドを競合回避メカニズムとして使用します。 |
|
| statefulset の現在の状態の最新の利用可能な観測値を表します。 |
|
| StatefulSetCondition は、特定の時点での statefulset の状態を記述します。 |
|
| currentReplicas は、currentRevision により示される StatefulSet バージョンから StatefulSet コントローラーによって作成された Pod の数です。 |
|
| currentRevision は、空でない場合、シーケンス [0,currentReplicas) で Pod を生成するのに使用される StatefulSet のバージョンを示します。 |
|
| observedGeneration は、この StatefulSet で観察された最新の世代です。これは、API サーバーによる変更時に更新される StatefulSet の生成に対応します。 |
|
| readyReplicas は、Ready 条件が指定されたこの StatefulSet に対して作成された Pod の数です。 |
|
| レプリカは、StatefulSet コントローラーによって作成された Pod の数です。 |
|
| updateRevision は、空でないと、シーケンス [replicas-updatedReplicas,replicas) で Pod を生成するのに使用される StatefulSet のバージョンを示します。 |
|
| updatedReplicas は、updateRevision により示される StatefulSet バージョンから StatefulSet コントローラーにより作成された Pod の数です。 |
17.1.7. .status.conditions
- 説明
- statefulset の現在の状態の最新の利用可能な観測値を表します。
- タイプ
-
array
17.1.8. .status.conditions[]
- 説明
- StatefulSetCondition は、特定の時点での statefulset の状態を記述します。
- タイプ
-
object
- 必須
-
type
-
status
-
プロパティー | タイプ | 説明 |
---|---|---|
| time | 最後にある状態から別の状態に遷移した時間。 |
|
| 遷移の詳細を示す人が判読できるメッセージ。 |
|
| 条件の最後の遷移の理由。 |
|
| 状態のステータス、True、False、Unknown のいずれか。 |
|
| statefulset 条件のタイプ。 |