클러스터 워커 노드 관리
- 인쇄
- PDF
클러스터 워커 노드 관리
- 인쇄
- PDF
기사 요약
이 요약이 도움이 되었나요?
의견을 보내 주셔서 감사합니다.
클러스터 내의 워커 노드 목록을 확인하고 각 워커 노드를 관리할 수 있습니다. Graceful Termination이 필요한 경우 kubectl
명령어를 사용하여 워커 노드에서 Pod를 안전하게 축출할 수 있습니다.
워커 노드 목록 확인
클러스터의 워커 노드 목록을 확인하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Services > Container > Ncloud Kubernetes Service 메뉴를 차례대로 클릭해 주십시오.
- 클러스터 목록에서 개별 클러스터 행을 클릭해 주십시오.
- 클러스터 상세 정보 탭에서 노드풀 영역 아래에 있는 [워커노드 보기] 버튼을 클릭해 주십시오.
- 클러스터 이름을 클릭하여 다른 클러스터의 노드 목록을 확인할 수 있습니다.
- 정상 노드는 노드 상태가 Ready로 표시됩니다. Kubelet이 동작하지 않거나 기타 다른 이유로 정상 동작하지 않는 노드는 노드 상태가 Not Ready로 표시됩니다.
- 콘솔에서 Services > Container > Ncloud Kubernetes Service > Nodes를 차례대로 클릭하는 방법으로도 이 목록을 확인할 수 있습니다.
워커 노드 상세 정보 보기
클러스터 내 각 워커 노드의 상세 정보를 확인하려면 워커 노드 목록에서 확인하려는 노드의 이름을 클릭해 주십시오.
Kubectl을 통한 워커 노드 유지보수
안정적인 서비스 운영을 위한 개입이 필요할 경우, Kubectl을 사용하여 워커 노드에서 Pod를 안전하게 축출함으로써 해당 Pod 내의 컨테이너들을 Graceful Termination 형태로 종료할 수 있습니다.
워커 노드 상태 확인
워커 노드의 상태를 확인하려면 아래 명령어를 실행해 주십시오.
$ kubectl --kubeconfig $KUBE_CONFIG describe node $NODENAME
정상 상태의 노드 예시는 아래와 같습니다.
"conditions": [
{
"type": "Ready",
"status": "True",
"reason": "KubeletReady",
"message": "kubelet is posting ready status",
"lastHeartbeatTime": "2019-06-05T18:38:35Z",
"lastTransitionTime": "2019-06-05T11:41:27Z"
}
]
- 노드의 상태는 JSON 오브젝트로 반환됩니다.
- 노드의 컨디션 중
status
의 값이 5분 이상Unknown
또는False
로 유지되는 경우, 노드 상의 모든 Pod들은 노드 컨트롤러에 의해 삭제되도록 스케줄됩니다.
(네이버 클라우드 플랫폼의 Ncloud Kubernetes Service에서는pod-eviction-timeout
이 5분으로 지정되어 있습니다.)
워커 노드에서 Pod 축출
노드에 대한 커널 업데이트 및 인프라의 유지보수 등 다양한 작업을 수행하기 전에 kubectl drain
명령어를 사용하여 노드로부터 Pod를 안전하게 축출할 수 있습니다. 안전하게 축출된 Pod의 컨테이너는 Graceful Termination 형태로 종료할 수 있습니다.
주의
노드 내의 특정 시스템 Pod는 kubectl drain
명령어로 제거할 수 없습니다.
제거할 수 없는 Pod에 대한 자세한 내용은 kubectl drain을 참고하십시오.
kubectl drain
명령어를 사용하여 워커 노드에서 Pod를 축출하는 방법은 다음과 같습니다.
- 아래 명령어를 실행하여 Pod를 축출하려는 노드를 확인해 주십시오.
$ kubectl --kubeconfig $KUBE_CONFIG get nodes
- 확인한 노드 중 Pod를 축출할 대상의 워커 노드 이름을 입력하여 아래 명령어를 실행해 주십시오.
$ kubectl --kubeconfig $KUBE_CONFIG drain $NODENAME
- 클러스터 유지 보수 작업을 수행한 후, 아래 명령어를 사용하여 해당 워커 노드에 다시 Pod가 스케줄링될 수 있도록 설정해 주십시오.
$ kubectl --kubeconfig $KUBE_CONFIG uncordon $NODENAME
이 문서가 도움이 되었습니까?