Study Memory Work
[K8S/CKA 자격증] Worloads & Scheduling - node 관리 본문
노드관리
pod가 실행되는 노드인 worker node를 대상으로 특정 worker노드에 scheduling을 허용하거나 금지하고싶을 때, worker node내 pod들을 비워서 cluster member에서 제외하고 싶을 때 등등
Node 스케줄링 중단 및 허용
- 컨테이너를 포함한 Pod는 node에서 실행됨
- node는 Control-plane에 의해 관리
- 특정node의스케줄링중단(cordon)및 허용(uncordon)
- kubectl cordon <NODE_NAME> : 특정 worker node 에서 scheduling에 대해 disabled상태로 만들고
- kubectl uncordon <NODE_NAME> : abled상태로 만든다.


Node 비우기(drain)
- 특정 node 에서 실행중인 pod 비우기(drain) 및 제거(delete)
( deployment를 이용하여 컨테이너갯수를 항상 보장받도록 Pod를 생성했다면 한 node 내에 모든 pod를 삭제 했다면 pod는 갯수를 보장해주는 controller에 의해 다른 node에서 다시 실행된다.) - drain 명령 시, 내부 Pod 가 모두 비워지고, 자동적으로 SchedulDisabled 상태가 된다(cordon)
- 항상 따라오는 옵션 :
- --ignore-daemonsets : DaemonSet-managed pod들은 ignore. 일반 drain 명령으로는 삭제할 수 없으므로 ignore 시켜주어야 한다.
* DaemonSet : 애플리케이션 Pod가 아닌, Cube-proxy, CNI interface .. 등의 Pod. - --force=false : RC, RS, Job, DaemonSet 또는 StatefulSet에서 관리하지 않는 Pod까지 제거.
-> controller 제어없이 단독으로 생성된 Pod들까지 모두 삭제하기 위해 넣어주는 옵션.
- --ignore-daemonsets : DaemonSet-managed pod들은 ignore. 일반 drain 명령으로는 삭제할 수 없으므로 ignore 시켜주어야 한다.
$ kubectl drain <NODE_NAME> --ignore-daemonsets –force
[문제8] 노드 비우기
작업 클러스터 : k8s
k8s-worker2 노드를 스케줄링 불가능하게 설정하고, 해당 노드에서 실행 중인 모든 Pod을 다른 node로 reschedule 하세요.
# 1. 노드 비우기(drain)
kubectl drain --ignore-daemonsets --force k8s-worker2
'Infra > Kubernetes' 카테고리의 다른 글
[K8S/CKA 자격증] Worloads & Scheduling - pod scheduling (0) | 2023.01.22 |
---|---|
[K8S/CKA 자격증] Worloads & Scheduling - node 정보보기 (0) | 2023.01.22 |
[K8S/CKA 자격증] Worloads & Scheduling - Deployment (0) | 2023.01.22 |
[K8S/CKA 자격증] Worloads & Scheduling - Pod (3) | 2023.01.20 |
[K8S/CKA 자격증] API 인증 / rbac 인증 (문제O) (0) | 2023.01.13 |