Oh My Algorithm
Concept Guide무중단 교체 · 롤백

롤링 업데이트 (Rolling Update)

디플로이먼트는 파드를 고치지 않고 갈아 끼웁니다. 새 버전을 선언하면 새 ReplicaSet 을 만들고, 새 파드 하나가 준비를 마친 뒤에야 낡은 파드 하나를 내립니다. 그래서 교체가 진행되는 내내 이용 가능한 개수가 선언한 값 아래로 내려가지 않습니다. 무중단은 특별한 장치가 아니라 이 순서에서 나옵니다.

01롤링 업데이트 (Rolling Update)

웹 서버 세 개가 v1 으로 돌고 있습니다. 디플로이먼트는 이 개수를 ReplicaSet 에게 맡겨 두고 지켜봅니다.

새 이미지를 선언합니다. 디플로이먼트는 기존 파드를 고치지 않고 v2 용 ReplicaSet 을 새로 만듭니다.

한꺼번에 갈아치우지 않습니다. 새 것을 하나 띄우고 준비되면 낡은 것을 하나 내리는 식으로 넘깁니다.

새 파드가 준비를 마칩니다. 이제 넷이 살아 있으니 낡은 것 하나를 내려도 셋은 지켜집니다.

낡은 파드가 내려가고 다음 새 파드가 올라옵니다. 같은 교대를 개수만큼 반복합니다.

두 번째 교대가 끝나고 마지막 파드가 뜹니다. 무리의 절반 이상이 이미 새 버전입니다.

마지막 낡은 파드가 내려갑니다. 선언한 셋이 전부 v2 가 됐습니다.

비어 버린 v1 ReplicaSet 은 지워지지 않고 0개로 남습니다. 되돌아갈 자리를 남겨 두는 것입니다.

새 버전에 문제가 보이면 되감습니다. 같은 규칙을 반대로 돌려 v1 을 늘리고 v2 를 줄입니다.

Deployment · replicas 3ReplicaSet · v1Ready · 3 / 3v1-1v1-2v1-3
1 / 9

정리

무중단의 정체는 특별한 장치가 아니라 개수입니다. 새 것이 준비된 뒤에야 낡은 것을 내리므로, 이용 가능한 파드가 선언 아래로 내려가지 않습니다.

직접 해보기

새 버전을 선언하고, 진행 중에 멈추거나 되감아 보세요. 아래 막대가 선언 눈금 밑으로 내려가는지 지켜보면 됩니다.

이용 가능한 파드3 / 3
web-1 · v1Ready
web-2 · v1Ready
web-3 · v1Ready

선언 v1 · 이용 가능 3 / 3 · v1 셋이 돌고 있습니다 · 새 버전을 선언해 보세요

02 쉽게 이해하기

For Everyone
🔑핵심 동작

새 ReplicaSet 을 만들어 파드를 하나씩 교대합니다. 새 파드가 준비된 뒤에 낡은 것을 내리므로 이용 가능한 개수가 선언 아래로 내려가지 않고, 낡은 ReplicaSet 을 0개로 남겨 되돌릴 자리를 둡니다.

💡쉽게 말하면

디플로이먼트는 버전마다 ReplicaSet 을 따로 두고 개수만 옮깁니다.

maxSurge 는 잠시 넘겨도 되는 여유분, maxUnavailable 은 잠시 모자라도 되는 한도이고, 이 둘이 교체 속도를 정합니다.

새 파드가 '준비됨'으로 세어지는 기준은 readiness probe 라, 이 검사가 허술하면 아직 못 받는 파드로 트래픽이 갑니다.

낡은 ReplicaSet 은 0개로 남겨 두므로 롤백은 새 배포가 아니라 개수를 되돌리는 일이 됩니다.

📍어디에 쓰나
  • 무중단 배포 전략 선택(롤링·재생성·블루그린)
  • readiness probe 설계
  • maxSurge·maxUnavailable 로 속도와 여유분 조절
  • 문제 발생 시 롤백 경로 파악

03 자주 묻는 질문

FAQ
롤링 업데이트 (Rolling Update)란 무엇인가요?+

디플로이먼트는 파드를 고치지 않고 갈아 끼웁니다. 새 버전을 선언하면 새 ReplicaSet 을 만들고, 새 파드 하나가 준비를 마친 뒤에야 낡은 파드 하나를 내립니다. 그래서 교체가 진행되는 내내 이용 가능한 개수가 선언한 값 아래로 내려가지 않습니다. 무중단은 특별한 장치가 아니라 이 순서에서 나옵니다.

롤링 업데이트 (Rolling Update)은(는) 어디에 사용하나요?+

무중단 배포 전략 선택(롤링·재생성·블루그린), readiness probe 설계, maxSurge·maxUnavailable 로 속도와 여유분 조절, 문제 발생 시 롤백 경로 파악

롤링 업데이트 (Rolling Update)를 쉽게 비유하면?+

새 ReplicaSet 을 만들어 파드를 하나씩 교대합니다. 새 파드가 준비된 뒤에 낡은 것을 내리므로 이용 가능한 개수가 선언 아래로 내려가지 않고, 낡은 ReplicaSet 을 0개로 남겨 되돌릴 자리를 둡니다.