StatefulSetはじめに
A、StatefulSet概要
StatefulSetが適用される(ステートフル)ステートフル管理するために使用される
IDポッドは、順次成長していることを確認し、StatefulSet管理ポッドを
との最大の違いは、StatefulSet展開が常にポッドに割り当てられた同じ名前のシリーズです。これらのポッドは、テンプレートから作成されたが、互いに置き換えることができない
2つのStatefulSet使用シナリオ
以下の請求項の適用のために、StatefulSet適し
必要安定した、固有のネットワーク識別(のdNSName)
それぞれ常にポッドストレージパスに対応する(PersistantVolumeClaimTemplate)
によって注文増加のコピーは、コピーを削減し、コピー削減にクリーンアップを実行し
、自動的にローリング更新を実行する安全保障秩序を
アプリケーションが安定したネットワークのアイデンティティを必要としない、または展開するために必要がない場合は、増加をコピーし、すべき展開(ステートレス)コントローラを削除します
三、StatefulSet制限
ポッドストレージのいずれかのいずれかの前に、クラスタ管理者が作成し、記憶CLAS PersistentVolumeプロビジョニングに対応することによって提供さ
ため、データのセキュリティを確保し、削除するか、またはそれに対応するデータボリュームは削除されませんStatefulSetを縮小
あなたがStatefulSetを削除すると、ポッドが正常に終了保証されません。ポッドは、エレガントで終了StatefulSetの順序に従って、あなたが前にStatefulSetを削除することができた場合は、ダウンスケールを0に
デフォルトポッド経営方針(OrderedReady)ローリングアップデートを使用するときは、エラー状態を入力して、手動での介入が必要な場合があります
例の十分な理解とStatefulSet
StatefulSet例を作成します
以下は、次の組成によりStatefulSetの一例です。
- ネットワークドメインを制御するためのヘッドレスサービスと呼ばれるnginxのサービス
- 2のコピー、ウェブStatefulSetと呼ばれます
apiVersion:V1 種類:サービス メタデータ: 名前:nginxのサービス#headlessサービス名 ラベル: アプリ:nginxの#のカスタムラベル スペック: ポート: -ポート:80 名前:ウェブ CLUSTERIP:なし セレクタ: アプリ:nginxの#関連するアプリ:nginxののポッド --- apiVersion:アプリケーション / V1 種類:StatefulSet メタデータ: 名前:コントローラのWeb-D #statefulsetの名前 スペック: セレクタ: matchLabels: アプリ:nginxの#関連するアプリ:ポッドのnginxのコントロール serviceNameを:" nginxのサービス" #指定ヘッドレスサービス レプリカ:2 テンプレート: メタデータ: ラベル: アプリ:nginxの#podラベル スペック: terminationGracePeriodSeconds:10 コンテナ: - 名前:nginxの#podにおける船舶の名称 画像:nginxの:1.7。9 ポート: - containerPort:80 名:ウェブ
ポッドのロゴ
ポッドStatefulSetは、次のコンポーネントで構成され、一意の識別子を含みます
- いいえ。
- 安定したネットワークアイデンティティ
- 安定したストレージ
いいえ。
StatefulSetのコピーの数がゼロに至るまでポッド所望の数、及びStatefulSetで一意である必要性が割り当てられるそれぞれが、Nであると仮定する。
名前がポッドである名+数StatefulSet;そのようなコンフィギュレーションファイルとして、2つのコピーが存在し、最初の名前ポッドウェブ-D-0であり、第二は、名前ポッドウェブ-D-1であります
安定したネットワークID
ウェブ-D-0、第二ポッド名: - 1)ポッド形式でStatefulSetホスト名$(statefulSet名)$(POD番号)、上記の例では、2ポッド、第一ポッドの名前を作成することであろうこれは、Web-D-1であります
2)StatefulSetヘッドレスサービスは、ドメイン彼らのポッドを制御するために使用することができ、フォーマットフィールド(ドメイン):. $(サービス名)$(名前空間).svc.cluster.localため、
上記のフィールドの例は:nginxの-service.defaule.svc.cluster.local
3)StatefulSetポッドは、各dnsNmae、フォーマット:. $(ポッド名)$(ドメイン)が割り当てられています
例えば、上記ポッドのdNSNameは、Web-D-0.nginx-server.default.svc.cluster.localで、他のポッドはアドレスによってそれを見つけることができます