6.8. Node Maintenance Operator를 사용하여 노드를 유지보수 모드에 배치


Node Maintenance Operator를 사용하여 oc adm utility 또는 NodeMaintenance 사용자 정의 리소스(CR)를 사용하여 노드를 유지보수 모드로 배치할 수 있습니다.

6.8.1. Node Maintenance Operator 정보

Node Maintenance Operator는 새로운 또는 삭제된 NodeMaintenance CR을 감시합니다. 새 NodeMaintenance CR이 감지되면 새 워크로드가 예약되지 않고 나머지 클러스터에서 노드가 차단됩니다. 제거할 수 있는 모든 Pod는 노드에서 제거됩니다. NodeMaintenance CR이 삭제되면 CR에서 참조되는 노드를 새 워크로드에 사용할 수 있습니다.

참고

노드 유지관리 작업에 NodeMaintenance CR을 사용하면 표준 OpenShift Container Platform CR 처리를 사용하여 oc adm cordonoc adm drain 명령과 동일한 결과를 얻을 수 있습니다.

6.8.2. Node Maintenance Operator 설치

웹 콘솔 또는 OpenShift CLI(oc)를 사용하여 Node Maintenance Operator를 설치할 수 있습니다.

참고

OpenShift Virtualization 버전 4.10이 클러스터에 설치되어 있는 경우 노드 유지 관리 Operator 버전의 오래된 버전이 포함됩니다.

6.8.2.1. 웹 콘솔을 사용하여 Node Maintenance Operator 설치

OpenShift Container Platform 웹 콘솔을 사용하여 Node Maintenance Operator를 설치할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 로그인합니다.

절차

  1. OpenShift Container Platform 웹 콘솔에서 Operator OperatorHub로 이동합니다.
  2. Node Maintenance Operator를 검색한 다음 설치를 클릭합니다.
  3. 기본 설치 모드네임스페이스 를 계속 선택하여 Operator가 openshift-operators 네임스페이스에 설치되도록 합니다.
  4. 설치를 클릭합니다.

검증

설치에 성공했는지 확인하려면 다음을 수행하십시오.

  1. Operator 설치된 Operator 페이지로 이동합니다.
  2. Operator가 openshift-operators 네임스페이스에 설치되어 있고 상태가 Succeeded 인지 확인합니다.

Operator가 성공적으로 설치되지 않은 경우 다음을 수행하십시오.

  1. Operator 설치된 Operator 페이지로 이동하여 Status 열에 오류 또는 실패가 있는지 점검합니다.
  2. Operator 설치된 Operator Node Maintenance Operator Details 페이지로 이동하여 Pod를 생성하기 전에 Conditions 섹션에서 오류를 검사합니다.
  3. 워크로드 Pod 페이지로 이동하여 설치된 네임스페이스에서 Node Maintenance Operator Pod를 검색하고 Logs 탭에서 로그를 확인합니다.

6.8.2.2. CLI를 사용하여 Node Maintenance Operator 설치

OpenShift CLI(oc)를 사용하여 Node Maintenance Operator를 설치할 수 있습니다.

자체 네임스페이스 또는 openshift-operators 네임스페이스에 Node Maintenance Operator를 설치할 수 있습니다.

자체 네임스페이스에 Operator를 설치하려면 절차의 단계를 따르십시오.

openshift-operators 네임스페이스에 Operator를 설치하려면 새 네임스페이스 CR(사용자 정의 리소스) 및 OperatorGroup CR을 생성하는 단계가 필요하지 않기 때문에 절차의 3단계로 건너뛰십시오.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 로그인합니다.

절차

  1. Node Maintenance Operator의 네임스페이스 CR을 생성합니다.

    1. 네임스페이스 CR을 정의하고 YAML 파일을 저장합니다(예: node-maintenance-namespace.yaml ):

      apiVersion: v1
      kind: Namespace
      metadata:
        name: nmo-test
    2. 네임스페이스 CR을 생성하려면 다음 명령을 실행합니다.

      $ oc create -f node-maintenance-namespace.yaml
  2. OperatorGroup CR을 생성합니다.

    1. OperatorGroup CR을 정의하고 YAML 파일을 저장합니다(예: node-maintenance-operator-group.yaml ).

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: node-maintenance-operator
        namespace: nmo-test
    2. OperatorGroup CR을 생성하려면 다음 명령을 실행합니다.

      $ oc create -f node-maintenance-operator-group.yaml
  3. 서브스크립션 CR을 생성합니다.

    1. Subscription CR을 정의하고 YAML 파일을 저장합니다(예: node-maintenance-subscription.yaml ).

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: node-maintenance-operator
        namespace: nmo-test 1
      spec:
        channel: stable
        InstallPlaneApproval: Automatic
        name: node-maintenance-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace
        StartingCSV: node-maintenance-operator.v4.11.0
      1
      Node Maintenance Operator를 설치할 네임스페이스 를 지정합니다.
      중요

      Node Maintenance Operator를 openshift-operators 네임스페이스에 설치하려면 서브스크립션 CR에 openshift-operators 를 지정합니다.

    2. 서브스크립션 CR을 생성하려면 다음 명령을 실행합니다.

      $ oc create -f node-maintenance-subscription.yaml

검증

  1. CSV 리소스를 검사하여 설치에 성공했는지 확인합니다.

    $ oc get csv -n openshift-operators

    출력 예

    NAME                               DISPLAY                     VERSION   REPLACES  PHASE
    node-maintenance-operator.v4.11    Node Maintenance Operator   4.11                Succeeded

  2. Node Maintenance Operator가 실행 중인지 확인합니다.

    $ oc get deploy -n openshift-operators

    출력 예

    NAME                                           READY   UP-TO-DATE   AVAILABLE   AGE
    node-maintenance-operator-controller-manager   1/1     1            1           10d

Node Maintenance Operator는 제한된 네트워크 환경에서 지원됩니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.

6.8.3. 노드를 유지보수 모드로 설정

NodeMaintenance CR을 사용하여 웹 콘솔 또는 CLI에서 노드를 유지보수 모드에 배치할 수 있습니다.

6.8.3.1. 웹 콘솔을 사용하여 노드를 유지보수 모드로 설정

노드를 유지보수 모드로 설정하려면 웹 콘솔을 사용하여 NodeMaintenance CR(사용자 정의 리소스)을 생성할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 로그인합니다.
  • OperatorHub 에서 Node Maintenance Operator를 설치합니다.

절차

  1. 웹 콘솔의 관리자 관점에서 Operator 설치된 Operator 로 이동합니다.
  2. Operator 목록에서 Node Maintenance Operator를 선택합니다.
  3. Node Maintenance 탭에서 NodeMaintenance 생성을 클릭합니다.
  4. NodeMaintenance 생성 페이지에서 양식 보기 또는 YAML 보기를 선택하여 NodeMaintenance CR을 구성합니다.
  5. 구성한 NodeMaintenance CR을 적용하려면 생성을 클릭합니다.

검증

Node Maintenance 탭에서 상태 열을 검사하고 상태가 성공인지 확인합니다.

6.8.3.2. CLI를 사용하여 노드를 유지보수 모드로 설정

NodeMaintenance CR(사용자 정의 리소스)을 사용하여 노드를 유지관리 모드에 배치할 수 있습니다. NodeMaintenance CR을 적용하면 허용되는 모든 Pod가 제거되고 노드가 예약할 수 없습니다. 제거된 Pod는 클러스터의 다른 노드로 이동하기 위해 대기열에 있습니다.

사전 요구 사항

  • OpenShift Container Platform CLI oc를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 클러스터에 로그인합니다.

절차

  1. 다음 NodeMaintenance CR을 생성하고 파일을 nodemaintenance-cr.yaml 로 저장합니다.

    apiVersion: nodemaintenance.medik8s.io/v1beta1
    kind: NodeMaintenance
    metadata:
      name: nodemaintenance-cr  1
    spec:
      nodeName: node-1.example.com 2
      reason: "NIC replacement" 3
    1
    노드 유지보수 CR의 이름입니다.
    2
    유지보수 모드에 배치할 노드의 이름입니다.
    3
    유지 관리 이유에 대한 일반 텍스트 설명입니다.
  2. 다음 명령을 실행하여 노드 유지보수 CR을 적용합니다.

    $ oc apply -f nodemaintenance-cr.yaml

검증

  1. 다음 명령을 실행하여 유지 관리 작업의 진행 상황을 확인합니다.

    $ oc describe node <node-name>

    여기서 <node-name >은 노드의 이름입니다. (예: node-1.example.com)

  2. 출력 예 확인:

    Events:
      Type     Reason                     Age                   From     Message
      ----     ------                     ----                  ----     -------
      Normal   NodeNotSchedulable         61m                   kubelet  Node node-1.example.com status is now: NodeNotSchedulable

6.8.3.3. 현재 NodeMaintenance CR 작업의 상태 확인

현재 NodeMaintenance CR 작업의 상태를 확인할 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform CLI oc를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 로그인합니다.

절차

  • 다음 명령을 실행하여 현재 노드 유지보수 작업의 상태를 확인합니다(예: NodeMaintenance CR 또는 nm 오브젝트).

    $ oc get nm -o yaml

    출력 예

    apiVersion: v1
    items:
    - apiVersion: nodemaintenance.medik8s.io/v1beta1
      kind: NodeMaintenance
      metadata:
    ...
      spec:
        nodeName: node-1.example.com
        reason: Node maintenance
      status:
        drainProgress: 100   1
        evictionPods: 3   2
        lastError: "Last failure message" 3
        lastUpdate: "2022-06-23T11:43:18Z" 4
        phase: Succeeded
        totalpods: 5 5
    ...

    1
    노드 드레이닝의 백분율입니다.
    2
    제거로 예약된 Pod 수입니다.
    3
    최신 제거 오류(있는 경우)입니다.
    4
    상태가 마지막으로 업데이트되는 시간입니다.
    5
    노드가 유지보수 모드에 도달하기 전의 총 Pod 수입니다.

6.8.4. 유지관리 모드에서 노드 재시작

NodeMaintenance CR을 사용하여 웹 콘솔 또는 CLI에서 유지보수 모드에서 노드를 재시작할 수 있습니다. 노드를 재시작하면 노드가 유지관리 모드에서 해제되어 노드를 다시 스케줄링할 수 있습니다.

6.8.4.1. 웹 콘솔을 사용하여 유지보수 모드에서 노드 재시작

유지보수 모드에서 노드를 재시작하려면 웹 콘솔을 사용하여 NodeMaintenance CR(사용자 정의 리소스)을 삭제할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 로그인합니다.
  • OperatorHub 에서 Node Maintenance Operator를 설치합니다.

절차

  1. 웹 콘솔의 관리자 관점에서 Operator 설치된 Operator 로 이동합니다.
  2. Operator 목록에서 Node Maintenance Operator를 선택합니다.
  3. Node Maintenance 탭에서 삭제할 NodeMaintenance CR을 선택합니다.
  4. 노드 끝에 있는 옵션 메뉴 kebab 를 클릭하고 노드 유지 관리 삭제를 선택합니다.

검증

  1. OpenShift Container Platform 콘솔에서 컴퓨팅 노드를 클릭합니다.
  2. NodeMaintenance CR을 삭제한 노드의 상태 열을 검사하고 상태가 Ready 인지 확인합니다.

6.8.4.2. CLI를 사용하여 유지보수 모드에서 노드 재시작

NodeMaintenance CR을 삭제하여 NodeMaintenance CR을 사용하여 시작된 유지보수 모드에서 노드를 재시작할 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform CLI oc를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 클러스터에 로그인합니다.

절차

  • 노드 유지관리 작업이 완료되면 활성 NodeMaintenance CR을 삭제합니다.

    $ oc delete -f nodemaintenance-cr.yaml

    출력 예

    nodemaintenance.nodemaintenance.medik8s.io "maintenance-example" deleted

검증

  1. 다음 명령을 실행하여 유지 관리 작업의 진행 상황을 확인합니다.

    $ oc describe node <node-name>

    여기서 <node-name >은 노드의 이름입니다. (예: node-1.example.com)

  2. 출력 예 확인:

    Events:
      Type     Reason                  Age                   From     Message
      ----     ------                  ----                  ----     -------
      Normal   NodeSchedulable         2m                    kubelet  Node node-1.example.com status is now: NodeSchedulable

6.8.5. 베어 메탈 노드 작업

베어 메탈 노드가 있는 클러스터의 경우 웹 콘솔 작업 제어를 사용하여 노드를 유지보수 모드로 배치하고 유지보수 모드에서 노드를 재시작할 수 있습니다.

참고

베어 메탈 노드가 있는 클러스터는 요약된 대로 웹 콘솔 및 CLI를 사용하여 노드를 유지보수 모드로 전환하고 유지 관리 모드에서 노드를 재개할 수 있습니다. 웹 콘솔 작업 제어를 사용하여 이러한 방법은 베어 메탈 클러스터에만 적용할 수 있습니다.

6.8.5.1. 베어 메탈 노드 유지관리

베어 메탈 인프라에 OpenShift Container Platform을 배포할 때는 클라우드 인프라에 배포하는 것과 비교하여 추가 고려 사항을 고려해야 합니다. 클러스터 노드가 임시로 간주되는 클라우드 환경에서와 달리 베어 메탈 노드를 다시 프로비저닝하려면 유지 관리 작업에 더 많은 시간과 노력이 필요합니다.

커널 오류 또는 NIC 카드 하드웨어 오류로 인해 베어 메탈 노드에 장애가 발생하면 문제가 발생한 노드를 복구하거나 교체하는 동안 장애가 발생한 노드의 워크로드를 클러스터의 다른 노드에서 다시 시작해야 합니다. 노드 유지보수 모드를 사용하면 클러스터 관리자가 노드를 정상적으로 끄고 워크로드를 클러스터의 다른 부분으로 이동하여 워크로드가 중단되지 않도록 할 수 있습니다. 유지보수 관리 중에 자세한 진행 상황 및 노드 상태 세부 정보가 제공됩니다.

6.8.5.2. 베어 메탈 노드를 유지보수 모드로 설정

컴퓨팅 노드 목록의 각 노드에 있는 옵션 메뉴 kebab 를 사용하거나 노드 세부 정보 화면의 작업 컨트롤을 사용하여 베어 메탈 노드를 유지보수 모드로 설정합니다.

절차

  1. 웹 콘솔의 관리자 관점에서 컴퓨팅 노드 를 클릭합니다.
  2. 이 화면에서 노드를 유지보수 모드로 설정하면 여러 노드에 대한 작업을 더 쉽게 수행할 수 있습니다. 노드 세부 정보 화면에서 노드 를 유지보수 모드로 설정하면 선택한 노드에 대한 포괄적인 세부 정보를 볼 수 있습니다.

    • 노드 끝에 있는 옵션 메뉴 kebab 를 클릭하고 유지보수 시작을 선택합니다.
    • 노드 이름을 클릭하여 노드 세부 정보 화면을 열고 작업 유지보수 시작을 클릭합니다.
  3. 확인 창에서 유지보수 시작을 클릭합니다.

노드는 더 이상 예약할 수 없습니다. LiveMigration 제거 전략이 있는 가상 머신이 있으면 실시간 마이그레이션됩니다. 노드의 기타 모든 Pod 및 가상 머신이 삭제되고 다른 노드에서 다시 생성됩니다.

검증

  • 컴퓨팅 노드 페이지로 이동하여 해당 노드의 상태가 Under 유지 관리 인지 확인합니다.

6.8.5.3. 유지보수 모드에서 베어 메탈 노드 재시작

컴퓨팅 노드 목록의 각 노드에 있는 옵션 메뉴 kebab 를 사용하거나 노드 세부 정보 화면의 작업 컨트롤을 사용하여 유지보수 모드에서 베어 메탈 노드를 재시작합니다.

절차

  1. 웹 콘솔의 관리자 관점에서 컴퓨팅 노드 를 클릭합니다.
  2. 이 화면에서 노드를 재시작하면 여러 노드에 대한 작업을 더 쉽게 수행할 수 있습니다. 노드 세부 정보 화면에서 노드 를 재시작하면 선택한 노드에 대한 포괄적인 세부 정보를 볼 수 있습니다.

    • 노드 끝에 있는 옵션 메뉴 kebab 를 클릭하고 유지보수 중지 를 선택합니다.
    • 노드 이름을 클릭하여 노드 세부 정보 화면을 열고 작업 유지보수 중지를 클릭합니다.
  3. 확인 창에서 유지보수 중지를 클릭합니다.

노드를 예약할 수 있습니다. 유지보수 전에 노드에서 실행 중인 가상 머신 인스턴스가 있는 경우 이 노드로 자동으로 마이그레이션되지 않습니다.

검증

  • 컴퓨팅 노드 페이지로 이동하여 해당 노드의 상태가 Ready 인지 확인합니다.

6.8.6. Node Maintenance Operator에 대한 데이터 수집

Node Maintenance Operator에 대한 디버깅 정보를 수집하려면 must-gather 툴을 사용하십시오. Node Maintenance Operator의 must-gather 이미지에 대한 자세한 내용은 특정 기능에 대한 데이터 수집을 참조하십시오.

6.8.7. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.