11.2. 노드를 유지보수 모드로 설정
웹 콘솔, CLI 또는 NodeMaintenance
사용자 정의 리소스에서 노드를 유지관리 모드에 배치합니다.
11.2.1. 웹 콘솔에서 노드를 유지보수 모드로 설정
컴퓨팅
절차
-
OpenShift Virtualization 콘솔에서 컴퓨팅
노드를 클릭합니다. 이 화면에서 노드를 유지보수 모드로 설정하면 한 화면에서 여러 노드에 대한 작업을 더 쉽게 수행할 수 있습니다. 노드 세부 정보 화면에서 노드를 유지보수 모드로 설정하면 선택한 노드에 대한 포괄적인 세부 정보를 볼 수 있습니다.
- 노드 끝에 있는 옵션 메뉴 를 클릭하고 유지보수 시작을 선택합니다.
-
노드 이름을 클릭하여 노드 세부 정보 화면을 열고 작업
유지보수 시작을 클릭합니다.
- 확인 창에서 유지보수 시작을 클릭합니다.
노드는 LiveMigration
제거 전략이 있는 가상 머신 인스턴스를 실시간 마이그레이션하고 더 이상 노드를 스케줄링할 수 없습니다. 노드의 기타 모든 Pod 및 가상 머신이 삭제되고 다른 노드에서 다시 생성됩니다.
11.2.2. CLI에서 노드를 유지보수 모드로 설정
oc adm drain
명령을 사용하여 노드에서 Pod를 제거하거나 삭제하여 노드를 유지보수 모드로 설정합니다.
절차
노드를 예약 불가능으로 표시합니다. 노드 상태가
NotReady, SchedulingDisabled
로 변경됩니다.$ oc adm cordon <node1>
유지보수를 위해 노드를 드레이닝합니다. 노드는
LiveMigratable
조건이True
로 설정되고spec:evictionStrategy
필드가LiveMigrate
로 설정된 가상 머신 인스턴스를 실시간으로 마이그레이션합니다. 노드의 기타 모든 Pod 및 가상 머신이 삭제되고 다른 노드에서 다시 생성됩니다.$ oc adm drain <node1> --delete-emptydir-data --ignore-daemonsets=true --force
-
--delete-emptydir-data
플래그는emptyDir
볼륨을 사용하는 노드의 모든 가상 머신 인스턴스를 제거합니다. 이러한 볼륨의 데이터는 임시이며 종료 후 삭제될 수 있습니다. -
--ignore-daemonsets=true
플래그를 사용하면 데몬 세트가 무시되고 Pod 제거를 성공적으로 수행할 수 있습니다. -
--force
플래그는 복제본 세트 또는 데몬 세트 컨트롤러에서 관리하지 않는 Pod를 삭제합니다.
-
11.2.3. NodeMaintenance 사용자 정의 리소스를 사용하여 노드를 유지관리 모드로 설정
NodeMaintenance
CR(사용자 정의 리소스)을 사용하여 노드를 유지관리 모드에 배치할 수 있습니다. NodeMaintenance
CR을 적용하면 허용되는 모든 Pod가 제거되고 노드가 종료됩니다. 제거된 Pod는 클러스터의 다른 노드로 이동하기 위해 대기열에 있습니다.
사전 요구 사항
-
OpenShift Container Platform CLI
oc
를 설치합니다. -
cluster-admin
권한이 있는 사용자로 클러스터에 로그인합니다.
절차
다음 노드 유지관리 CR을 생성하고 파일을
nodemaintenance-cr.yaml
로 저장합니다.apiVersion: nodemaintenance.kubevirt.io/v1beta1 kind: NodeMaintenance metadata: name: maintenance-example 1 spec: nodeName: node-1.example.com 2 reason: "Node maintenance" 3
다음 명령을 실행하여 노드 유지관리 일정을 적용합니다.
$ oc apply -f nodemaintenance-cr.yaml
다음 명령을 실행하여 유지관리 작업의 진행 상황을 확인하고
<node-name>
을 노드 이름으로 교체합니다.$ oc describe node <node-name>
출력 예
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal NodeNotSchedulable 61m kubelet Node node-1.example.com status is now: NodeNotSchedulable
11.2.3.1. 현재 NodeMaintenance CR 작업의 상태 확인
현재 NodeMaintenance
CR 작업의 상태를 확인할 수 있습니다.
사전 요구 사항
-
OpenShift Container Platform CLI
oc
를 설치합니다. -
cluster-admin
권한이 있는 사용자로 로그인합니다.
절차
다음 명령을 실행하여 현재 노드 유지관리 작업의 상태를 확인합니다.
$ oc get NodeMaintenance -o yaml
출력 예
apiVersion: v1 items: - apiVersion: nodemaintenance.kubevirt.io/v1beta1 kind: NodeMaintenance metadata: ... spec: nodeName: node-1.example.com reason: Node maintenance status: evictionPods: 3 1 pendingPods: - pod-example-workload-0 - httpd - httpd-manual phase: Running lastError: "Last failure message" 2 totalpods: 5 ...