Certificated 도전/CKA - Kubernetes

[CKA] 무조건 나온다는 문제! Drain, Cordon, Uncordon

지추월자 2023. 12. 3. 11:04
반응형

CKA를 공부를 하고 있는데 Administer a Cluster  카테고리에서 무조건 나오는 유형중에 4가지를 꼭 알아야할 것 같아서 정리하려고합니다. 자 일단은 위의 명령어들의 기본적인 뜻을 알고 있으면 이해하기 쉽겠죠? 간단하게 단어의 뜻정도만 기억하고 있으면 공부하기 더 쉬우니까 공유해드릴게요. 

  • drain : 물[액체]을[이] 빼내다[빠지다]
  • cordon : (경찰·군인 등이 설치한 진입이나 진출) 저지선[비상경계선] <-> uncordon 
  • taint: (평판 등을) 더럽히다, 오염시키다, 오점[오명]을 남기다

자, 이제 본격적으로 쿠버네티스에서 4가지 명령어로 어떻게 사용해야하는지에 대해서 말씀드리겠습니다. 

쿠버네티스(Kubernetes)에서 drain, cordon, 그리고 uncordon은 노드를 관리하기 위해 사용되는 명령어입니다. 이들 명령어는 노드에 배포되는 파드들을 관리하고, 클러스터의 유지 보수 작업을 수행하는 데 중요합니다.  https://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/

Drain

drain 명령어는 특정 노드에서 모든 작업 파드를 안전하게 제거하고, 그 노드를 cordon 상태로 만듭니다. 이 과정에서 기존 파드들은 다른 노드로 이동하거나 종료됩니다. 여기서 기존 파드들이 종료되고 다른 노드로 이동한다는게 중요합니다!!! 

명령어 >> kubectl drain --ignore-daemonsets <node name>

사용 케이스: 노드를 업그레이드하거나, 유지 보수를 위해 비워야 할 때 사용합니다. 예를 들어, 커널 업데이트나 하드웨어 교체와 같은 작업을 수행하기 전에 drain을 사용합니다.

Uncordon

기능: uncordon 명령어는 cordon 명령어로 인해 차단되었던 노드를 다시 활성화시켜 새로운 파드가 스케줄될 수 있도록 합니다.

사용 케이스: 노드의 유지 보수가 완료되고 정상적으로 작동하는 것을 확인한 후, 다시 파드가 배치될 수 있도록 할 때 사용합니다.

Cordon

기능: cordon 명령어는 특정 노드에 새로운 파드가 스케줄링되는 것을 방지합니다. 이 명령어를 사용하면 해당 노드는 'cordoned' 상태가 되어 새로운 파드가 할당되지 않습니다. 여기서 cordon 새로운 파드가 cordoned 되어있는 노드에 스케쥴링 되지 못하도록 방지는 것이고, 기존에 있는 파드가 삭제되는것은 아니다! 그래서 drain이랑 차이점을 알아두면 좋을 것 같습니다.

사용 케이스: 노드를 유지 보수하기 위해 또는 노드에 문제가 있을 때 임시로 새로운 파드의 할당을 중단하고자 할 때 사용합니다.

 

반응형