9.3.2.2. 롤링 배포를 사용하는 경우
- 애플리케이션을 업데이트하는 동안 다운타임이 발생하지 않도록 하려는 경우
- 애플리케이션에서 이전 코드 및 새 코드가 동시에 실행되도록 지원하는 경우
롤링 배포에서는 코드의 이전 버전과 새 버전이 동시에 실행됩니다. 이를 위해서는 일반적으로 애플리케이션에서 N-1 호환성 을 처리해야 합니다.
다음은 롤링 전략의 예입니다.
strategy: type: Rolling rollingParams: updatePeriodSeconds: 1 1 intervalSeconds: 1 2 timeoutSeconds: 120 3 maxSurge: "20%" 4 maxUnavailable: "10%" 5 pre: {} 6 post: {}
- 1
- 개별 Pod 업데이트 사이에 대기하는 시간입니다. 이 값을 지정하지 않는 경우 기본값은
1
입니다. - 2
- 업데이트 후 배포 상태를 폴링할 때까지 대기하는 시간입니다. 이 값을 지정하지 않는 경우 기본값은
1
입니다. - 3
- 스케일링 이벤트를 중지하기 전에 대기하는 시간입니다. 선택 사항이며 기본값은
600
입니다. 여기서 중지하는 경우 이전에 완료된 배포로 자동으로 롤백합니다. - 4
maxSurge
는 선택 사항이며 지정하지 않는 경우 기본값은25%
입니다. 다음 절차 아래의 정보를 참조하십시오.- 5
maxUnavailable
은 선택 사항이며 지정하지 않는 경우 기본값은25%
입니다. 다음 절차 아래의 정보를 참조하십시오.- 6
롤링 전략은 다음과 같습니다.
-
pre
라이프사이클 후크를 실행합니다. - 서지 수에 따라 새 복제 컨트롤러를 확장합니다.
- 사용할 수 없는 최대 수에 따라 이전 복제 컨트롤러를 축소합니다.
- 새 복제 컨트롤러가 원하는 복제본 수에 도달하고 이전 복제 컨트롤러가 0으로 스케일링될 때까지 이 스케일링을 반복합니다.
-
post
라이프사이클 후크를 실행합니다.
축소할 때 롤링 전략은 Pod가 준비될 때까지 대기하므로 추가 스케일링이 가용성에 영향을 미치는지 여부를 결정할 수 있습니다. 확장된 Pod가 준비되지 않으면 배포 프로세스가 결국 타임아웃되어 배포에 실패합니다.
maxUnavailable
매개변수는 업데이트 중 사용할 수 없는 최대 Pod 수입니다. maxSurge
매개변수는 원래 Pod 수 이상으로 예약할 수 있는 최대 Pod 수입니다. 두 매개변수 모두 백분율 (예: 10%
) 또는 절대 값(예: 2
)으로 설정할 수 있습니다. 기본값은 둘 다 25%
입니다.
이러한 매개변수를 사용하면 가용성 및 속도를 위해 배포를 조정할 수 있습니다. 예를 들면 다음과 같습니다.
-
maxUnavailable=0
및maxSurge=20%
를 사용하면 업데이트 및 빠른 확장 중에 전체 용량을 유지 관리할 수 있습니다. -
maxUnavailable=10%
및maxSurge=0
은 추가 용량(작업 내 업데이트)을 사용하여 업데이트를 수행합니다. -
maxUnavailable=10%
및maxSurge=10%
는 신속하게 확장 및 축소되어 일부 용량 손실 가능성이 있습니다.
일반적으로 빠른 롤아웃을 원한다면 maxSurge
를 사용합니다. 리소스 할당량을 고려해야 하며 부분적으로 사용할 수 없는 경우 maxUnavailable
을 사용하십시오.