5.2. 노드 작업
관리자는 여러 작업을 수행하여 클러스터의 효율성을 높일 수 있습니다.
5.2.1. 노드에서 Pod를 비우는 방법 이해
Pod를 비우면 하나 이상의 지정된 노드에서 모든 Pod 또는 선택한 Pod를 마이그레이션할 수 있습니다.
복제 컨트롤러에서 지원하는 Pod만 비울 수 있습니다. 복제 컨트롤러는 다른 노드에서 새 Pod를 생성하고 지정된 노드에서 기존 Pod를 제거합니다.
복제 컨트롤러에서 지원하지 않는 베어 Pod는 기본적으로 영향을 받지 않습니다. Pod 선택기를 지정하여 Pod의 하위 집합을 비울 수 있습니다. Pod 선택기는 라벨을 기반으로 하므로 라벨이 지정된 Pod를 모두 비웁니다.
프로세스
Pod 비우기를 수행하기 전에 노드를 예약 불가능으로 표시합니다.
노드를 예약 불가능으로 표시합니다.
$ oc adm cordon <node1>
출력 예
node/<node1> cordoned
노드 상태가
Ready,SchedulingDisabled
인지 확인합니다.$ oc get node <node1>
출력 예
NAME STATUS ROLES AGE VERSION <node1> Ready,SchedulingDisabled worker 1d v1.24.0
다음 메서드 중 하나를 사용하여 Pod를 비웁니다.
하나 이상의 노드에 있는 모든 Pod 또는 선택한 Pod를 비웁니다.
$ oc adm drain <node1> <node2> [--pod-selector=<pod_selector>]
--force
옵션을 사용하여 베어 Pod를 강제 삭제합니다.true
로 설정하면 복제 컨트롤러, 복제본 세트, 작업, 데몬 세트 또는 상태 저장 세트에서 관리하지 않는 Pod가 있는 경우에도 계속 삭제합니다.$ oc adm drain <node1> <node2> --force=true
--grace-period
를 사용하여 각 Pod가 정상적으로 종료되는 시간(초)을 설정합니다. 음수인 경우 Pod에 지정된 기본값이 사용됩니다.$ oc adm drain <node1> <node2> --grace-period=-1
true
로 설정된--ignore-daemonsets
플래그를 사용하여 데몬 세트에서 관리하는 Pod를 무시합니다.$ oc adm drain <node1> <node2> --ignore-daemonsets=true
--timeout
플래그를 사용하여 종료하기 전에 대기하는 시간을 설정합니다. 값이0
이면 시간이 제한되지 않습니다.$ oc adm drain <node1> <node2> --timeout=5s
--delete-emptydir-data
플래그를true
로 설정하여emptyDir
볼륨을 사용하는 Pod가 있는 경우에도 Pod를 삭제합니다. 노드가 드레이닝되면 로컬 데이터가 삭제됩니다.$ oc adm drain <node1> <node2> --delete-emptydir-data=true
--dry-run
옵션을true
로 설정하여 실제로 비우기를 수행하지 않고 마이그레이션할 오브젝트를 나열합니다.$ oc adm drain <node1> <node2> --dry-run=true
특정 노드 이름(예:
<node1> <node2>
)을 지정하는 대신--selector=<node_selector>
옵션을 사용하여 선택한 노드에서 Pod를 비울 수 있습니다.
완료되면 노드를 예약 가능으로 표시합니다.
$ oc adm uncordon <node1>