롤링 업데이트 (Rolling Update)
디플로이먼트는 파드를 고치지 않고 갈아 끼웁니다. 새 버전을 선언하면 새 ReplicaSet 을 만들고, 새 파드 하나가 준비를 마친 뒤에야 낡은 파드 하나를 내립니다. 그래서 교체가 진행되는 내내 이용 가능한 개수가 선언한 값 아래로 내려가지 않습니다. 무중단은 특별한 장치가 아니라 이 순서에서 나옵니다.
01롤링 업데이트 (Rolling Update)
개념 한눈에 보기웹 서버 세 개가 v1 으로 돌고 있습니다. 디플로이먼트는 이 개수를 ReplicaSet 에게 맡겨 두고 지켜봅니다.
새 이미지를 선언합니다. 디플로이먼트는 기존 파드를 고치지 않고 v2 용 ReplicaSet 을 새로 만듭니다.
한꺼번에 갈아치우지 않습니다. 새 것을 하나 띄우고 준비되면 낡은 것을 하나 내리는 식으로 넘깁니다.
새 파드가 준비를 마칩니다. 이제 넷이 살아 있으니 낡은 것 하나를 내려도 셋은 지켜집니다.
낡은 파드가 내려가고 다음 새 파드가 올라옵니다. 같은 교대를 개수만큼 반복합니다.
두 번째 교대가 끝나고 마지막 파드가 뜹니다. 무리의 절반 이상이 이미 새 버전입니다.
마지막 낡은 파드가 내려갑니다. 선언한 셋이 전부 v2 가 됐습니다.
비어 버린 v1 ReplicaSet 은 지워지지 않고 0개로 남습니다. 되돌아갈 자리를 남겨 두는 것입니다.
새 버전에 문제가 보이면 되감습니다. 같은 규칙을 반대로 돌려 v1 을 늘리고 v2 를 줄입니다.
직접 해보기
새 버전을 선언하고, 진행 중에 멈추거나 되감아 보세요. 아래 막대가 선언 눈금 밑으로 내려가는지 지켜보면 됩니다.
선언 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개로 남겨 되돌릴 자리를 둡니다.
