11장. 노드
11.1. 노드 유지보수
oc adm
유틸리티 또는 NodeMaintenance
CR(사용자 정의 리소스)을 사용하여 노드를 유지보수 모드로 전환할 수 있습니다.
node-maintenance-operator
(NMO)는 더 이상 OpenShift Virtualization과 함께 제공되지 않습니다. OpenShift Container Platform 웹 콘솔의 OperatorHub 에서 독립형 Operator로 배포되거나 OpenShift CLI(oc
)를 사용하여 배포됩니다.
노드 수정, 펜싱 및 유지 관리에 대한 자세한 내용은 Workload Availability for Red Hat OpenShift 설명서를 참조하십시오.
VM(가상 머신)에는 실시간 마이그레이션할 공유 RWX( ReadWriteMany
) 액세스 모드가 있는 PVC(영구 볼륨 클레임)가 있어야 합니다.
Node Maintenance Operator는 신규 또는 삭제된 NodeMaintenance
CR을 감시합니다. 새 NodeMaintenance
CR이 감지되면 새 워크로드가 예약되지 않고 나머지 클러스터에서 노드가 차단됩니다. 제거할 수 있는 모든 Pod는 노드에서 제거됩니다. NodeMaintenance
CR이 삭제되면 CR에서 참조되는 노드를 새 워크로드에 사용할 수 있습니다.
노드 유지관리 작업에 NodeMaintenance
CR을 사용하면 표준 OpenShift Container Platform 사용자 정의 리소스 처리를 사용하여 oc adm cordon
및 oc adm drain
명령과 동일한 결과를 얻을 수 있습니다.
11.1.1. 제거 전략
노드를 유지보수 모드에 배치하면 노드가 예약 불가로 표시되고 해당 노드에서 모든 VM과 Pod가 드레이닝됩니다.
VM(가상 머신) 또는 클러스터에 대한 제거 전략을 구성할 수 있습니다.
- VM 제거 전략
VM
LiveMigrate
제거 전략을 사용하면 노드가 유지보수 모드에 배치되거나 드레인된 경우 VMI(가상 머신 인스턴스)가 중단되지 않습니다. 이 제거 전략이 있는 VMI는 다른 노드로 실시간 마이그레이션됩니다.웹 콘솔 또는 명령줄 을 사용하여 VM(가상 머신)에 대한 제거 전략을 구성할 수 있습니다.
중요기본 제거 전략은
LiveMigrate
입니다.LiveMigrate
제거 전략이 있는 비정상적인 VM으로 인해 VM이 노드에서 제거되지 않기 때문에 노드가 인프라 업그레이드를 드레이닝하거나 차단하지 못할 수 있습니다. 이 경우 VM을 수동으로 종료하지 않는 한 마이그레이션이Pending
또는Scheduling
상태로 유지됩니다.업그레이드할 수 없는 VM의 제거 전략을
LiveMigrateIfPossible
로 설정해야 합니다. 이 경우 업그레이드를 차단하지 않거나 마이그레이션하지 않아야 하는 VM의 경우None
으로 설정해야 합니다.
- 클러스터 제거 전략
- 워크로드 연속성 또는 인프라 업그레이드의 우선 순위를 지정하도록 클러스터에 대한 제거 전략을 구성할 수 있습니다.
클러스터 제거 전략을 구성하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
제거 전략 | 설명 | 인터럽트 워크플로 | 블록 업그레이드 |
---|---|---|---|
| 업그레이드에 비해 워크로드 연속성에 우선 순위를 지정합니다. | 없음 | 제공됨 2 |
| 환경이 업데이트되도록 워크로드 연속성에 대한 업그레이드 우선 순위를 지정합니다. | 제공됨 | 없음 |
| 제거 전략이 없는 VM을 종료합니다. | 제공됨 | 없음 |
- 다중 노드 클러스터의 기본 제거 전략
- VM에서 업그레이드를 차단하는 경우 VM을 수동으로 종료해야 합니다.
- 단일 노드 OpenShift의 기본 제거 전략입니다.
11.1.1.1. 명령줄을 사용하여 VM 제거 전략 구성
명령줄을 사용하여 VM(가상 머신)에 대한 제거 전략을 구성할 수 있습니다.
기본 제거 전략은 LiveMigrate
입니다. LiveMigrate
제거 전략이 있는 비정상적인 VM으로 인해 VM이 노드에서 제거되지 않기 때문에 노드가 인프라 업그레이드를 드레이닝하거나 차단하지 못할 수 있습니다. 이 경우 VM을 수동으로 종료하지 않는 한 마이그레이션이 Pending
또는 Scheduling
상태로 유지됩니다.
업그레이드할 수 없는 VM의 제거 전략을 LiveMigrateIfPossible
로 설정해야 합니다. 이 경우 업그레이드를 차단하지 않거나 마이그레이션하지 않아야 하는 VM의 경우 None
으로 설정해야 합니다.
프로세스
다음 명령을 실행하여
VirtualMachine
리소스를 편집합니다.$ oc edit vm <vm_name> -n <namespace>
제거 전략의 예
apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: <vm_name> spec: template: spec: evictionStrategy: LiveMigrateIfPossible 1 # ...
- 1
- 제거 전략을 지정합니다. 기본값은
LiveMigrate
입니다.
VM을 다시 시작하여 변경 사항을 적용합니다.
$ virtctl restart <vm_name> -n <namespace>
11.1.1.2. 명령줄을 사용하여 클러스터 제거 전략 구성
명령줄을 사용하여 클러스터에 대한 제거 전략을 구성할 수 있습니다.
클러스터 제거 전략을 구성하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
프로세스
다음 명령을 실행하여
하이퍼컨버지드
리소스를 편집합니다.$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
다음 예와 같이 클러스터 제거 전략을 설정합니다.
클러스터 제거 전략의 예
apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged spec: evictionStrategy: LiveMigrate # ...
11.1.2. 전략 실행
spec.running: true
로 구성된 VM(가상 머신)이 즉시 재시작됩니다. spec.runStrategy
키는 특정 조건에서 VM이 작동하는 방식을 결정할 수 있는 유연성을 제공합니다.
spec.runStrategy
및 spec.running
키는 함께 사용할 수 없습니다. 이 중 하나만 사용할 수 있습니다.
두 키가 모두 있는 VM 구성이 잘못되었습니다.
11.1.2.1. 전략 실행
spec.runStrategy
키에는 네 가지 가능한 값이 있습니다.
Always
-
다른 노드에서 VM(가상 머신)이 생성될 때 VMI(가상 머신 인스턴스)가 항상 존재합니다. 어떤 이유로든 원래 VMI가 중지되면 새 VMI가 생성됩니다. 이 동작은
running: true
와 동일합니다. RerunOnFailure
- 이전 인스턴스가 실패하면 다른 노드에서 VMI가 다시 생성됩니다. VM이 종료될 때와 같이 성공적으로 중지되면 인스턴스가 다시 생성되지 않습니다.
수동
-
start
,stop
,restart
virtctl 클라이언트 명령을 사용하여 VMI 상태를 수동으로 제어합니다. VM이 자동으로 다시 시작되지 않습니다. Halted
-
VM이 생성될 때 VMI가 존재하지 않습니다. 이 동작은
running: false
와 동일합니다.
virtctl start
,stop
및 restart
명령의 다양한 조합은 실행 전략에 영향을 미칩니다.
다음 표에서는 상태 간 VM의 전환을 설명합니다. 첫 번째 열에는 VM의 초기 실행 전략이 표시되어 있습니다. 나머지 열에는 virtctl 명령 및 해당 명령이 실행된 후 새 실행 전략이 표시됩니다.
초기 실행 전략 | 시작 | 중지 | 재시작 |
---|---|---|---|
Always | - | Halted | Always |
RerunOnFailure | - | Halted | RerunOnFailure |
Manual | Manual | Manual | Manual |
Halted | Always | - | - |
설치 관리자 프로비저닝 인프라를 사용하여 설치한 클러스터의 노드가 머신 상태 점검에 실패하고 사용할 수 없는 경우 runStrategy: Always
또는 runStrategy: RerunOnFailure
가 새 노드에 다시 예약됩니다.
11.1.2.2. 명령줄을 사용하여 VM 실행 전략 구성
명령줄을 사용하여 VM(가상 머신)에 대한 실행 전략을 구성할 수 있습니다.
spec.runStrategy
및 spec.running
키는 함께 사용할 수 없습니다. 두 키의 값이 포함된 VM 구성은 유효하지 않습니다.
프로세스
다음 명령을 실행하여
VirtualMachine
리소스를 편집합니다.$ oc edit vm <vm_name> -n <namespace>
실행 전략 예
apiVersion: kubevirt.io/v1 kind: VirtualMachine spec: runStrategy: Always # ...
11.1.3. 베어 메탈 노드 유지관리
베어 메탈 인프라에 OpenShift Container Platform을 배포할 때 클라우드 인프라에 배포하는 것과 비교하여 고려해야 할 추가 고려 사항이 있습니다. 클러스터 노드가 사용 후 삭제로 간주되는 클라우드 환경에서와 달리 베어 메탈 노드를 다시 프로비저닝하려면 유지관리 작업에 더 많은 시간과 노력이 필요합니다.
예를 들어 치명적인 커널 오류가 발생하거나 NIC 카드 하드웨어 장애가 발생하는 것과 같이 베에메탈 노드에 장애가 발생한 경우 문제가 발생한 노드가 복구 되거나 교체되는 동안 장애가 발생한 노드의 워크로드를 클러스터의 다른 곳에서 다시 시작해야 합니다. 클러스터 관리자는 노드 유지관리 모드를 통해 노드의 전원을 정상적으로 끄고 워크로드를 클러스터의 다른 부분으로 이동하여 워크로드가 중단되지 않도록 할 수 있습니다. 유지보수 관리 중에 자세한 진행 상황 및 노드 상태 세부 정보가 제공됩니다.