3.3.2. リーダーワーカーセットのデプロイ
Leader Worker Set Operator を使用すると、リーダーワーカーセットをデプロイして、複数のノード間で分散されるワークロードの管理を支援できます。
前提条件
- Leader Worker Set Operator をインストールした。
手順
次のコマンドを実行して新しいプロジェクトを作成します。
$ oc new-project my-namespaceleader-worker-set.yamlという名前のファイルを作成します。apiVersion: leaderworkerset.x-k8s.io/v1 kind: LeaderWorkerSet metadata: generation: 1 name: my-lws namespace: my-namespace spec: leaderWorkerTemplate: leaderTemplate: metadata: {} spec: containers: - image: nginxinc/nginx-unprivileged:1.27 name: leader resources: {} restartPolicy: RecreateGroupOnPodRestart size: 3 workerTemplate: metadata: {} spec: containers: - image: nginxinc/nginx-unprivileged:1.27 name: worker ports: - containerPort: 8080 protocol: TCP resources: {} networkConfig: subdomainPolicy: Shared replicas: 2 rolloutStrategy: rollingUpdateConfiguration: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate startupPolicy: LeaderCreated各項目の説明:
metadata.name- リーダーワーカーセットのリソースの名前を指定します。
metadata.namespace- リーダーワーカーセットが実行される namespace を指定します。
spec.leaderWorkerTemplate.leaderTemplate- リーダー Pod の Pod テンプレートを指定します。
spec.leaderWorkerTemplate.restartPolicy-
Pod 障害が発生した場合の再起動ポリシーを指定します。使用できる値は、グループ全体を再起動する
RecreateGroupOnPodRestartか、グループを再起動しないNoneです。 spec.leaderWorkerTemplate.size-
リーダー Pod を含む、各グループに作成する Pod の数を指定します。たとえば、値が
3の場合、リーダー Pod 1 個とワーカー Pod 2 個が作成されます。デフォルト値は1です。 spec.leaderWorkerTemplate.workerTemplate- ワーカー Pod の Pod テンプレートを指定します。
spec.networkConfig.subdomainPolicy-
ヘッドレスサービスを作成するときに使用するポリシーを指定します。使用できる値は
UniquePerReplicaまたはSharedです。デフォルト値はSharedです。 spec.replicas-
レプリカの数、つまりリーダーワーカーグループの数を指定します。デフォルト値は
1です。 spec.rolloutStrategy.rollingUpdateConfiguration.maxSurge-
ローリング更新中に
replicas値を超えてスケジュールできるレプリカの最大数を指定します。値は整数またはパーセンテージで指定できます。
設定可能なすべてのフィールドの詳細は、LeaderWorkerSet API のアップストリームドキュメントを参照してください。
次のコマンドを実行して、リーダーワーカーセットの設定を適用します。
$ oc apply -f leader-worker-set.yaml
検証
次のコマンドを実行して、Pod が作成されたことを確認します。
$ oc get pods -n my-namespace出力例
NAME READY STATUS RESTARTS AGE my-lws-0 1/1 Running 0 4s my-lws-0-1 1/1 Running 0 3s my-lws-0-2 1/1 Running 0 3s my-lws-1 1/1 Running 0 7s my-lws-1-1 1/1 Running 0 6s my-lws-1-2 1/1 Running 0 6s-
my-lws-0は、最初のグループのリーダー Pod です。 -
my-lws-1は、2 番目のグループのリーダー Pod です。
-
次のコマンドを実行して、ステートフルセットを確認します。
$ oc get statefulsets出力例
NAME READY AGE my-lws 4/4 111s my-lws-0 2/2 57s my-lws-1 2/2 60s-
my-lwsは、すべてのリーダーワーカーグループのリーダーステートフルセットです。 -
my-lws-0は、最初のグループのワーカーステートフルセットです。 -
my-lws-1は、2 番目のグループのワーカーステートフルセットです。
-