11.5. 작업자 풀 카나리아에 대한 머신 구성 상속 관리
기존 MCP에 할당된 MachineConfig
를 상속하도록 MCP(Machine config pool) canary를 구성할 수 있습니다. 이 구성은 MCP 카나리아를 사용하여 기존 MCP의 노드를 하나씩 업데이트할 때 유용합니다.
사전 요구 사항
- MCP를 하나 이상 생성했습니다.
절차
다음 두 단계에 설명된 대로 보조 MCP를 생성합니다.
다음 구성 파일을
machineConfigPool.yaml
로 저장합니다.Example
machineConfigPool
YAMLapiVersion: 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=''
다음 두 단계에 설명된 대로 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=''
다음 명령을 실행하여 카나리아 작업자 노드
worker-a
를 원래 MCP에서 제거합니다.$ oc label node worker-a node-role.kubernetes.io/worker-perf-
다음 파일을
machineConfigPool-Canary.yaml
로 저장합니다.Example
machineConfigPool-Canary.yaml
fileapiVersion: 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-