Certified Kubernetes Administration - 39
2024-06-22
- Kubernetes
- Cloud
노드 유지 보수 시나리오
-
유지 보수 필요 상황
- 클러스터의 노드를 점검해야 하는 상황: 소프트웨어 업그레이드, 보안 패치 등.
-
노드 다운 시의 영향
-
노드가 다운되면 해당 노드의 포드는 접근 불가.
-
예: 블루 포드의 경우 여러 복제본이 있으므로 사용자 영향 없음.
-
그린 포드의 경우 단일 복제본만 있으므로 사용자 영향 큼.
-
-
쿠버네티스의 동작
-
노드가 바로 다시 온라인 상태가 되면, kubelet 프로세스가 포드를 재시작.
-
노드가 5분 이상 다운되면 포드는 해당 노드에서 삭제됨.
-
ReplicaSet에 속한 포드는 다른 노드에서 재생성.
-
ReplicaSet에 속하지 않은 포드는 복구되지 않음.
-
-
Pod-Eviction-Timeout
-
노드가 오프라인되면 마스터 노드는 최대 5분 동안 노드의 복귀를 기다림.
-
pod-eviction-timeout 이후에 노드가 복귀하면 포드가 없는 상태로 돌아옴.
-
-
안전한 유지 보수 방법
-
노드의 작업을 안전하게 처리하려면 해당 노드에서 모든 워크로드를 다른 노드로 옮김.
-
'drain' 명령어를 사용하여 포드를 우아하게 종료하고 다른 노드에서 재생성.
-
노드를 'cordon'하여 스케줄링을 막음.
-
노드가 다시 온라인 상태가 되면 'uncordon'하여 스케줄링을 허용.
-
-
기타 명령어
-
'cordon': 노드를 스케줄링 불가 상태로 표시.
-
'drain': 노드를 스케줄링 불가 상태로 표시하고 포드를 다른 노드로 이동.
-
요약본
-
유지 보수를 위해 노드를 다운시킬 경우, 쿠버네티스는 기본적으로 5분 동안 노드의 복귀를 기다리고, 그 후 포드를 다른 노드에서 재생성합니다.
-
그러나 더 안전한 방법은 'drain' 명령어를 사용하여 노드에서 모든 워크로드를 다른 노드로 옮기고, 노드를 'cordon'하여 스케줄링을 막는 것입니다.
-
유지 보수가 끝나면 'uncordon'을 사용하여 노드를 다시 스케줄링 가능 상태로 만듭니다.
Certified ...
Certified ...