클라우드와 컨테이너의 기초
Kubernetes의 Deployment에서 Pod 템플릿의 컨테이너 이미지를 새 버전으로 변경했다. 기본 업데이트 방식(RollingUpdate)에서 일어나는 일로 올바른 것은?
- A새 ReplicaSet을 만들어 새 버전의 Pod를 늘리면서 이전 버전의 Pod를 줄인다. 이전 ReplicaSet은 롤백용으로 Pod가 0인 상태로 남는다
- B동작 중인 Pod 안의 컨테이너 이미지가 Pod를 다시 만들지 않고 그 자리에서 새 버전으로 교체되므로, Pod의 IP 주소도 이름도 바뀌지 않는다
- C이전 버전의 Pod를 모두 동시에 삭제한 다음 새 버전의 Pod를 한꺼번에 만들므로, 업데이트하는 동안 일시적으로 서비스가 멈춘다
정답과 해설 보기
정답: A. 새 ReplicaSet을 만들어 새 버전의 Pod를 늘리면서 이전 버전의 Pod를 줄인다. 이전 ReplicaSet은 롤백용으로 Pod가 0인 상태로 남는다
Deployment는 Pod 템플릿이 바뀌면 새 템플릿의 ReplicaSet을 만들고, 새 Pod가 준비된 것을 확인하면서 이전 ReplicaSet의 Pod를 조금씩 줄입니다. 그래서 업데이트하는 동안에도 일정 수의 Pod가 계속 요청을 처리합니다. 이전 ReplicaSet은 Pod가 0인 상태로 남겨지므로 kubectl rollout undo로 이전 버전으로 되돌릴 수 있습니다. 모든 Pod를 먼저 지운 다음 다시 만드는 방식은 Recreate로, 명시적으로 지정했을 때 사용됩니다.