10.4. カナリアロールアウト更新を実行するためのマシン設定プールの作成
カナリアロールアウト更新を実行するには、まず 1 つ以上のカスタムマシン設定プール (MCP) を作成する必要があります。
手順
次のコマンドを実行して、クラスター内のワーカーノードをリスト表示します。
$ oc get -l 'node-role.kubernetes.io/master!=' -o 'jsonpath={range .items[*]}{.metadata.name}{"\n"}{end}' nodes
出力例
ci-ln-pwnll6b-f76d1-s8t9n-worker-a-s75z4 ci-ln-pwnll6b-f76d1-s8t9n-worker-b-dglj2 ci-ln-pwnll6b-f76d1-s8t9n-worker-c-lldbm
更新を遅らせるノードごとに、次のコマンドを実行してカスタムラベルをノードに追加します。
$ oc label node <node_name> node-role.kubernetes.io/<custom_label>=
以下に例を示します。
$ oc label node ci-ln-0qv1yp2-f76d1-kl2tq-worker-a-j2ssz node-role.kubernetes.io/workerpool-canary=
出力例
node/ci-ln-gtrwm8t-f76d1-spbl7-worker-a-xk76k labeled
新規 MCP を作成します。
MCP の YAML ファイルを作成します。
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool metadata: name: workerpool-canary 1 spec: machineConfigSelector: matchExpressions: - { key: machineconfiguration.openshift.io/role, operator: In, values: [worker,workerpool-canary] 2 } nodeSelector: matchLabels: node-role.kubernetes.io/workerpool-canary: "" 3
次のコマンドを実行して、
MachineConfigPool
オブジェクトを作成します。$ oc create -f <file_name>
出力例
machineconfigpool.machineconfiguration.openshift.io/workerpool-canary created
次のコマンドを実行して、クラスター内の MCP のリストとその現在の状態を表示します。
$ oc get machineconfigpool
出力例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-b0bb90c4921860f2a5d8a2f8137c1867 True False False 3 3 3 0 97m workerpool-canary rendered-workerpool-canary-87ba3dec1ad78cb6aecebf7fbb476a36 True False False 1 1 1 0 2m42s worker rendered-worker-87ba3dec1ad78cb6aecebf7fbb476a36 True False False 2 2 2 0 97m
新規マシン設定プールの
workerpool-canary
が作成され、カスタムラベルが追加されたノード数がマシン数に表示されます。ワーカー MCP マシン数は同じ数で縮小されます。マシン数の更新に数分かかることがあります。この例では、1 つのノードがworker
MCP からworkerpool-canary
MCP に移動しました。