11.5. 작업자 풀 카나리아에 대한 머신 구성 상속 관리
기존 MCP에 할당된 MachineConfig 를 상속하도록 MCP(Machine config pool) canary를 구성할 수 있습니다. 이 구성은 MCP 카나리아를 사용하여 기존 MCP의 노드를 하나씩 업데이트할 때 유용합니다.
사전 요구 사항
- MCP를 하나 이상 생성했습니다.
절차
다음 두 단계에 설명된 대로 보조 MCP를 생성합니다.
다음 구성 파일을
machineConfigPool.yaml로 저장합니다.Example
machineConfigPoolYAMLapiVersion: 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이라는 파일로 저장합니다.MachineConfigYAML의 예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-perfMCP에서 머신을 추가합니다.다음 명령을 실행하여 카나리아 작업자 노드
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.yamlfileapiVersion: 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-