Section 6-1. OS Upgrades
udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의 및 쿠버네티스 인 액션 (마르코 룩샤)를 참고하여 정리한 글입니다.
Section06. Cluster Maintenance
OS Upgrades
Self Healing Applications
- 쿠버네티스는 ReplicaSet과 Replication Contoller 등을 통해 파드 내의 애플리케이션이 손상된다면 자동으로 파드를 재생성한다.
Drain
1
kubectl drain --ignore-daemonsets <node name>
- 노드에서 유지 관리(예: 커널 업그레이드, 하드웨어 유지 관리 등)를 수행하기 전에 노드에서 모든 파드를 안전하게 제거하는 데 사용할 수 있다.
- 해당 노드의 파드들은 삭제되고 새로운 파드가 다른 노드에 생성된다.
- Replicaset, DaemonSet, StatefulSet 등에 의해 관리되고 있는 파드만 새로운 노드에 스케쥴링된다. 즉 Standalone Pod은 다른 노드에 배포되지 않는다.
- ”–ignore-daemonsets” : demonset으로 실행된 파드는 삭제 시 각 노드에 하나씩 다시 생성되어 drain을 실패하기 때문에 demonset으로 생성된 파드는 제외한다.
- kubectl drain이 적용된 노드는 SchedulingDisabled 상태가 되며, 이후 새롭게 생성되는 어떤 Pod도 해당 노드에 생성되지 않는다.
Cordon
1
kubectl cordon <node-name>
- 해당 노드에 배포된 파드는 유지하면서 추가적인 파드의 배포를 제한한다.
Uncordon
1
kubectl uncordon <node-name>
- drain이나 cordon 명령어를 적용한 노드는 SchedulingDisabled 상태가 되어 파드가 스케줄링 되지않는다.
- uncordon은 노드의 이러한 SchedulingDisabled 상태를 제거한다.
This post is licensed under CC BY 4.0 by the author.