11.5. 작업자 풀 카나리아에 대한 머신 구성 상속 관리


기존 MCP에 할당된 MachineConfig 를 상속하도록 MCP(Machine config pool) canary를 구성할 수 있습니다. 이 구성은 MCP 카나리아를 사용하여 기존 MCP의 노드를 하나씩 업데이트할 때 유용합니다.

사전 요구 사항

  • MCP를 하나 이상 생성했습니다.

절차

  1. 다음 두 단계에 설명된 대로 보조 MCP를 생성합니다.

    1. 다음 구성 파일을 machineConfigPool.yaml 로 저장합니다.

      Example 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: ""
      # ...

    2. 다음 명령을 실행하여 새 머신 구성 풀을 생성합니다.

      $ oc create -f machineConfigPool.yaml

      출력 예

      machineconfigpool.machineconfiguration.openshift.io/worker-perf created

  2. 보조 MCP에 일부 머신을 추가합니다. 다음 예제에서는 작업자 노드 worker-a,worker-b, worker-c 를 MCP worker-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=''
  3. 다음 두 단계에 설명된 대로 MCP worker-perf 의 새 MachineConfig 를 생성합니다.

    1. 다음 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
      # ...

    2. 다음 명령을 실행하여 MachineConfig 를 적용합니다.

      $ oc create -f new-machineconfig.yaml
  4. 새 카나리아 MCP를 생성하고 이전 단계에서 생성한 MCP에서 머신을 추가합니다. 다음 예제에서는 worker-perf-canary 라는 MCP를 생성하고 미리 생성한 worker-perf MCP에서 머신을 추가합니다.

    1. 다음 명령을 실행하여 카나리아 작업자 노드 worker-a 에 레이블을 지정합니다.

      $ oc label node worker-a node-role.kubernetes.io/worker-perf-canary=''
    2. 다음 명령을 실행하여 카나리아 작업자 노드 worker-a 를 원래 MCP에서 제거합니다.

      $ oc label node worker-a node-role.kubernetes.io/worker-perf-
    3. 다음 파일을 machineConfigPool-Canary.yaml 로 저장합니다.

      Example machineConfigPool-Canary.yaml file

      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 의 멤버를 구성할 수 있습니다.
    4. 다음 명령을 실행하여 새 worker-perf-canary 를 생성합니다.

      $ oc create -f machineConfigPool-Canary.yaml

      출력 예

      machineconfigpool.machineconfiguration.openshift.io/worker-perf-canary created

  5. MachineConfigworker-perf-canary 에 상속되었는지 확인합니다.

    1. 다음 명령을 실행하여 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

    2. 시스템이 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

    3. 다음 명령을 실행하여 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)

    4. 다음 명령을 실행하여 MCP가 crashkernel 을 업데이트했는지 확인합니다.

      $ cat /proc/cmdline

      출력에는 업데이트된 crashekernel 값이 포함되어야 합니다. 예를 들면 다음과 같습니다.

      출력 예

      crashkernel=512M

  6. 선택 사항: 업그레이드에 만족하는 경우 worker-aworker-perf 로 반환할 수 있습니다.

    1. 다음 명령을 실행하여 worker-aworker-perf 로 반환합니다.

      $ oc label node worker-a node-role.kubernetes.io/worker-perf=''
    2. 다음 명령을 실행하여 카나리아 MCP에서 worker-a 를 제거합니다.

      $ oc label node worker-a node-role.kubernetes.io/worker-perf-canary-
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.