쿠버네티스 운영 실무 · 클러스터 업그레이드와 다운그레이드 전략 · 퀴즈
퀴즈: 업그레이드와 버전 스큐
문항 7개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
apiserver 가 1.34 일 때 함께 쓸 수 있는 kubelet 마이너 버전의 범위는?
- 1.34 만
- 1.32 ~ 1.35
- 1.33 ~ 1.35
- 1.31 ~ 1.34
apiserver 가 1.34 일 때 kubectl 은 어디까지 허용되는가?
- 1.34 이하만
- 1.31 ~ 1.34
- 1.33 ~ 1.35
- 제한 없음
1.32 클러스터를 1.34 로 올리려 합니다. 올바른 방법은?
- kubectl 을 1.34 로 올리면 자동으로 맞춰진다
- 1.34 로 한 번에 올린다
- 1.33 을 거쳐 한 마이너씩 올린다
- 노드를 먼저 1.34 로 올린 뒤 컨트롤 플레인을 올린다
cordon 과 drain 의 차이로 옳은 것은?
- cordon 은 컨트롤 플레인 노드에만 쓰고 워커에는 drain 만 쓴다
- drain 은 파드를 비운 뒤 노드를 클러스터 목록에서 제거한다
- cordon 은 파드를 지우고 drain 은 노드를 지운다
- cordon 은 새 스케줄만 막고 drain 은 기존 파드까지 쫓아낸다
복제본 3개인 Deployment 에 `minAvailable: 2` 인 PDB 가 걸려 있습니다. drain 시 동작은?
- PDB 는 스케줄러 정책이라 drain 에는 영향을 주지 않는다
- 3개가 동시에 evict 되고 PDB 는 그 뒤에 복구를 기다린다
- 항상 2개 이상이 살아 있는 선에서 순차적으로 evict 된다
- minAvailable 이 2라서 evict 요청이 전부 거부된다
업그레이드가 잘못됐을 때 컨트롤 플레인을 이전 마이너로 되돌리려 합니다. 올바른 판단은?
- `kubeadm upgrade apply` 에 낮은 버전을 주면 된다
- 노드를 이전 패키지 버전으로 재설치하고 재부팅하면 원래대로 돌아간다
- kubectl 과 kubelet 을 이전 마이너로 낮추면 컨트롤 플레인도 따라 내려간다
- 컨트롤 플레인 다운그레이드는 지원되지 않으므로 업그레이드 전 etcd 스냅샷으로 복구한다
노드 3대를 업그레이드할 때 카나리 단계를 두는 이유로 가장 적절한 것은?
- 한 대만 먼저 올려 두면 kubelet 마이너 버전을 한 칸 건너뛸 수 있어서
- 한 대씩 나누면 전체 업그레이드 소요 시간을 줄일 수 있어서
- 한 대만 drain 하면 PDB 의 minAvailable 제약을 우회할 수 있어서
- 문제가 생겼을 때 영향 범위를 한 대로 묶고 정상 노드와 비교할 수 있어서