第17章 StatefulSet [apps/v1]


説明

StatefulSet は、一貫した ID を持つ Pod のセットを表します。ID は次のように定義されます。- ネットワーク: 単一の安定した DNS およびホスト名。- ストレージ: 要求された数の VolumeClaim。

StatefulSet は、特定のネットワーク ID が常に同じストレージ ID にマップされることを保証します。

タイプ
object

17.1. 仕様

プロパティータイプ説明

apiVersion

string

APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。

kind

string

kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これを更新することはできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。

metadata

ObjectMeta

標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。

spec

object

StatefulSetSpec は、StatefulSet の仕様です。

status

object

StatefulSetStatus は、StatefulSet の現在の状態を表します。

17.1.1. .spec

説明
StatefulSetSpec は、StatefulSet の仕様です。
タイプ
object
必須
  • selector
  • template
  • serviceName
プロパティータイプ説明

minReadySeconds

integer

新しく作成された Pod が使用可能であると見なされるために、コンテナーがクラッシュすることなく準備ができる最小秒数。デフォルトは 0 です (Pod は準備ができ次第利用可能と見なされます)

ordinals

object

StatefulSetOrdinals は、この StatefulSet でのレプリカ順序割り当てに使用されるポリシーを記述します。

persistentVolumeClaimRetentionPolicy

object

StatefulSetPersistentVolumeClaimRetentionPolicy は、StatefulSet VolumeClaimTemplate から作成された PVC に使用されるポリシーを記述します。

podManagementPolicy

string

podManagementPolicy は、初期スケールアップ時、ノード上の Pod の交換時、またはスケールダウン時に Pod を作成する方法を制御します。デフォルトのポリシーは OrderedReady で、Pod は昇順 (例: pod-0 の次が pod-1) で作成され、コントローラーは各 Pod の準備ができるまで待機してから続行します。スケールダウンすると、Pod は逆の順序で削除されます。代替ポリシーは Parallel で、待機せずに目的のスケールに一致するように Pod を並列に作成し、スケールダウンするとすべての Pod を一度に削除します。

使用可能な列挙値: - "OrderedReady" は スケールアップでは昇順で Pod を作成し、スケールダウンでは降順で Pod を作成します。前の Pod が準備完了または終了した場合にのみ進行します。いつでも最大 1 つの Pod が変更されます。-"Parallel" ではステートフルセットレプリカ数が変更されるとすぐに Pod の作成と削除が行われ、Pod の準備が完了するか終了するまで待機しません。

replicas

integer

レプリカは、指定した Template のレプリカの希望する数です。これらは、同じ Template のインスタンス化であるという意味でレプリカですが、個々のレプリカにも一貫した ID があります。指定しない場合、デフォルトは 1 です。

revisionHistoryLimit

integer

revisionHistoryLimit は、StatefulSet のリビジョン履歴に保持されるリビジョンの最大数です。リビジョン履歴は、現在適用されている StatefulSetSpec バージョンで表されていないすべてのリビジョンで設定されます。デフォルト値は 10 です。

selector

LabelSelector

selector は、レプリカ数と一致する必要がある Pod に対するラベルクエリーです。Pod テンプレートのラベルと一致する必要があります。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

serviceName

string

serviceName は、この StatefulSet を管理するサービスの名前です。このサービスは StatefulSet の前に存在する必要があり、セットのネットワーク ID を担当します。Pod は、pod-specific-string.serviceName.default.svc.cluster.local のパターンに従う DNS/ホスト名を取得します。ここで、"pod-specific-string" は StatefulSet コントローラーによって管理されます。

template

PodTemplateSpec

テンプレートは、不十分なレプリカが検出された場合に作成される Pod を説明するオブジェクトです。StatefulSet によりスタンプされた各 Pod はこのテンプレートを満たしますが、StatefulSet の残りの部分とは異なる一意の ID を持ちます。各 Pod には、<statefulsetname>-<podindex> の形式で名前が付けられます。たとえば、インデックス番号 3 を持つ web という名前の StatefulSet 内の Pod は、web-3 という名前になります。

updateStrategy

object

StatefulSetUpdateStrategy は、StatefulSet コントローラーが更新を実行するのに使用する戦略を示します。示された戦略の更新を実行するのに必要な追加のパラメーターが含まれています。

volumeClaimTemplates

array (PersistentVolumeClaim)

volumeClaimTemplates は、Pod が参照できるクレームのリストです。StatefulSet コントローラーは、Pod の ID を維持する方法で、ネットワーク ID をクレームにマッピングするロールを果たします。このリストのすべてのクレームには、テンプレートの 1 つのコンテナーに (名前で) 一致する volumeMount が 1 つ以上含まれている必要があります。このリストのクレームは、同じ名前のテンプレート内のどのボリュームよりも優先されます。

17.1.2. .spec.ordinals

説明
StatefulSetOrdinals は、この StatefulSet でのレプリカ順序割り当てに使用されるポリシーを記述します。
タイプ
object
プロパティータイプ説明

start

integer

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

string

WhenDeleted は、StatefulSet が削除されたときに、StatefulSet VolumeClaimTemplates から作成された PVC に何が起こるかを指定します。Retain のデフォルトポリシーでは、PVC は StatefulSet の削除の影響を受けません。Delete ポリシーにより、このような PVC が削除されます。

whenScaled

string

WhenScaled は、StatefulSet がスケールダウンされたときに StatefulSet VolumeClaimTemplates から作成された PVC に何が起こるかを指定します。Retain のデフォルトポリシーでは、PVC はスケールダウンの影響を受けません。Delete ポリシーにより、レプリカ数を超える追加の Pod の関連付けられた PVC が削除されます。

17.1.4. .spec.updateStrategy

説明
StatefulSetUpdateStrategy は、StatefulSet コントローラーが更新を実行するのに使用する戦略を示します。示された戦略の更新を実行するのに必要な追加のパラメーターが含まれています。
タイプ
object
プロパティータイプ説明

rollingUpdate

object

RollingUpdateStatefulSetStrategy は、RollingUpdateStatefulSetStrategyType のパラメーターを伝達するのに使用されます。

type

string

タイプは、StatefulSetUpdateStrategy のタイプを示します。デフォルトは RollingUpdate です。

可能な列挙値: - "OnDelete" は、従来の動作をトリガーします。バージョン追跡と順序付きのローリング再起動は無効になっています。Pod は手動で削除されると、StatefulSetSpec から再作成されます。このストラテジーでスケール操作が実行される場合、仕様のバージョンは StatefulSet の currentRevision によって示されます。- "RollingUpdate" は、StatefulSet の順序付け制約に従って、StatefulSet にあるすべての Pod に更新が適用されることを示します。このストラテジーでスケール操作が実行されると、StatefulSet の updateRevision で示される仕様バージョンから新しい Pod が作成されます。

17.1.5. .spec.updateStrategy.rollingUpdate

説明
RollingUpdateStatefulSetStrategy は、RollingUpdateStatefulSetStrategyType のパラメーターを伝達するのに使用されます。
タイプ
object
プロパティータイプ説明

maxUnavailable

IntOrString

更新中に使用できなくなる可能性のある Pod の最大数。値は、絶対数 (例:5) または目的の Pod のパーセンテージ (例:10%) にすることができます。絶対数は、端数を切り上げてパーセンテージから計算されます。これは 0 にすることはできません。デフォルトは 1 です。このフィールドはアルファレベルであり、MaxUnavailableStatefulSet 機能を有効にするサーバーでのみ認識されます。このフィールドは、0 から Replicas-1 の範囲内のすべての Pod に適用されます。つまり、0 から Replicas-1 までの範囲内に使用できない Pod がある場合は、MaxUnavailable にカウントされます。

partition

integer

Partition は、StatefulSet をパーティション分割して更新する序数を示します。ローリング更新時に、通常の Replicas-1 からパーティションへのすべての Pod が更新されます。パーティション 1 から 0 までの Pod はどれも変更されません。これは、カナリアベースのデプロイメントを実行できるようにするのに役立ちます。デフォルト値は 0 です。

17.1.6. .status

説明
StatefulSetStatus は、StatefulSet の現在の状態を表します。
タイプ
object
必須
  • replicas
プロパティータイプ説明

availableReplicas

integer

この statefulset の対象となる利用可能な Pod (少なくとも minReadySeconds の準備ができている) の総数。

collisionCount

integer

collisionCount は、StatefulSet のハッシュ競合の数です。StatefulSet コントローラーは、最新の ControllerRevision の名前を作成する必要がある場合に、このフィールドを競合回避メカニズムとして使用します。

conditions

array

statefulset の現在の状態の最新の利用可能な観測値を表します。

conditions[]

object

StatefulSetCondition は、特定の時点での statefulset の状態を記述します。

currentReplicas

integer

currentReplicas は、currentRevision により示される StatefulSet バージョンから StatefulSet コントローラーによって作成された Pod の数です。

currentRevision

string

currentRevision は、空でない場合、シーケンス [0,currentReplicas) で Pod を生成するのに使用される StatefulSet のバージョンを示します。

observedGeneration

integer

observedGeneration は、この StatefulSet で観察された最新の世代です。これは、API サーバーによる変更時に更新される StatefulSet の生成に対応します。

readyReplicas

integer

readyReplicas は、Ready 条件が指定されたこの StatefulSet に対して作成された Pod の数です。

replicas

integer

レプリカは、StatefulSet コントローラーによって作成された Pod の数です。

updateRevision

string

updateRevision は、空でないと、シーケンス [replicas-updatedReplicas,replicas) で Pod を生成するのに使用される StatefulSet のバージョンを示します。

updatedReplicas

integer

updatedReplicas は、updateRevision により示される StatefulSet バージョンから StatefulSet コントローラーにより作成された Pod の数です。

17.1.7. .status.conditions

説明
statefulset の現在の状態の最新の利用可能な観測値を表します。
タイプ
array

17.1.8. .status.conditions[]

説明
StatefulSetCondition は、特定の時点での statefulset の状態を記述します。
タイプ
object
必須
  • type
  • status
プロパティータイプ説明

lastTransitionTime

time

最後にある状態から別の状態に遷移した時間。

message

string

遷移の詳細を示す人が判読できるメッセージ。

reason

string

条件の最後の遷移の理由。

status

string

状態のステータス、True、False、Unknown のいずれか。

type

string

statefulset 条件のタイプ。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.