10.5. ワーカープールカナリアのマシン設定継承の管理
既存のマシン設定プール (MCP) に割り当てられている MachineConfig
を継承するように、MCP カナリアを設定できます。この設定は、既存の MCP のノードを 1 つずつ更新しながら、MCP カナリアを使用してテストする場合に便利です。
前提条件
- 1 つ以上の MCP を作成した。
手順
次の 2 つのステップに従ってセカンダリー MCP を作成します。
次の設定ファイルを
machineConfigPool.yaml
として保存します。machineConfigPool
YAML の例apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool metadata: name: worker-perf spec: machineConfigSelector: matchExpressions: - { key: machineconfiguration.openshift.io/role, operator: In, values: [worker,worker-perf] } nodeSelector: matchLabels: node-role.kubernetes.io/worker-perf: "" # ...
次のコマンドを実行して、新しいマシン設定プールを作成します。
$ oc create -f machineConfigPool.yaml
出力例
machineconfigpool.machineconfiguration.openshift.io/worker-perf created
セカンダリー MCP にいくつかのマシンを追加します。次の例では、ワーカーノード
worker-a
、worker-b
、worker-c
にラベルを付けて、MCPworker-perf
に追加します。$ oc label node worker-a node-role.kubernetes.io/worker-perf=''
$ oc label node worker-b node-role.kubernetes.io/worker-perf=''
$ oc label node worker-c node-role.kubernetes.io/worker-perf=''
次の 2 つのステップに従って、MCP
worker-perf
用の新しいMachineConfig
を作成します。次の
MachineConfig
の例をnew-machineconfig.yaml
というファイルとして保存します。MachineConfig
YAML の例apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker-perf name: 06-kdump-enable-worker-perf spec: config: ignition: version: 3.2.0 systemd: units: - enabled: true name: kdump.service kernelArguments: - crashkernel=512M # ...
次のコマンドを実行して
MachineConfig
を適用します。$ oc create -f new-machineconfig.yaml
新しいカナリア MCP を作成し、前の手順で作成した MCP からマシンを追加します。次の例では、
worker-perf-canary
という MCP を作成し、以前に作成したworker-perf
MCP からマシンを追加します。次のコマンドを実行して、カナリアワーカーノードに
worker-a
というラベルを付けます。$ oc label node worker-a node-role.kubernetes.io/worker-perf-canary=''
次のコマンドを実行して、元の MCP からカナリアワーカーノード
worker-a
を削除します。$ oc label node worker-a node-role.kubernetes.io/worker-perf-
次のファイルを
machineConfigPool-Canary.yaml
として保存します。machineConfigPool-Canary.yaml
ファイルの例apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool metadata: name: worker-perf-canary spec: machineConfigSelector: matchExpressions: - { key: machineconfiguration.openshift.io/role, operator: In, values: [worker,worker-perf,worker-perf-canary] 1 } nodeSelector: matchLabels: node-role.kubernetes.io/worker-perf-canary: ""
- 1
- オプションの値。この例には、追加の値として
worker-perf-canary
が含まれています。このような形で値を使用すると、追加のMachineConfig
のメンバーを設定できます。
次のコマンドを実行して、新しい
worker-perf-canary
を作成します。$ oc create -f machineConfigPool-Canary.yaml
出力例
machineconfigpool.machineconfiguration.openshift.io/worker-perf-canary created
MachineConfig
がworker-perf-canary
に継承されているかどうかを確認します。次のコマンドを実行して、MCP がデグレード状態になっていないことを確認します。
$ oc get mcp
出力例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-2bf1379b39e22bae858ea1a3ff54b2ac True False False 3 3 3 0 5d16h worker rendered-worker-b9576d51e030413cfab12eb5b9841f34 True False False 0 0 0 0 5d16h worker-perf rendered-worker-perf-b98a1f62485fa702c4329d17d9364f6a True False False 2 2 2 0 56m worker-perf-canary rendered-worker-perf-canary-b98a1f62485fa702c4329d17d9364f6a True False False 1 1 1 0 44m
マシンが
worker-perf
からworker-perf-canary
に継承されていることを確認します。$ oc get nodes
出力例
NAME STATUS ROLES AGE VERSION ... worker-a Ready worker,worker-perf-canary 5d15h v1.27.13+e709aa5 worker-b Ready worker,worker-perf 5d15h v1.27.13+e709aa5 worker-c Ready worker,worker-perf 5d15h v1.27.13+e709aa5
次のコマンドを実行して、
worker-a
でkdump
サービスが有効になっていることを確認します。$ systemctl status kdump.service
出力例
NAME STATUS ROLES AGE VERSION ... kdump.service - Crash recovery kernel arming Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; preset: disabled) Active: active (exited) since Tue 2024-09-03 12:44:43 UTC; 10s ago Process: 4151139 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCESS) Main PID: 4151139 (code=exited, status=0/SUCCESS)
次のコマンドを実行して、MCP が
crashkernel
を更新したことを確認します。$ cat /proc/cmdline
出力には更新された
crashekernel
値が含まれるはずです。次に例を示します。出力例
crashkernel=512M
オプション: アップグレードに問題がなければ、
worker-a
をworker-perf
に戻すことができます。次のコマンドを実行して、
worker-a
をworker-perf
に戻します。$ oc label node worker-a node-role.kubernetes.io/worker-perf=''
次のコマンドを実行して、カナリア MCP から
worker-a
を削除します。$ oc label node worker-a node-role.kubernetes.io/worker-perf-canary-