Post

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.