Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

실습: 제품과 환경의 유지보수 시간대

유지보수 시간대(Maintenance window)는 Apollo가 변경을 수행할 수 있는 반복 시간 구간입니다. 환경 운영자는 업무 시간의 변경을 피하도록 설정하고, 제품 담당자는 제품을 지원할 수 있는 시간대를 지정할 수 있습니다. 개체에 최종 적용되는 시간대는 설정 우선순위로 결정합니다.

환경의 야간 및 주말 시간대

실습에서는 America/New_York 기준으로 월요일부터 금요일까지 06:00에서 22:00 사이에는 변경하지 않도록 구성합니다.

  1. 실습 환경의 Overview에서 현재 Maintenance window를 확인합니다.
  2. Actions → Edit settings manually를 열고 Edit를 선택합니다.
  3. 기존 환경 설정을 유지하면서 다음 시간대 정의와 전역 참조를 추가하거나 수정합니다.
global-maintenance-windows:
  downtime: my-env-window
  no-downtime: my-env-window
maintenance-windows:
  my-env-window:
    time-intervals:
      - MONDAY/22:00-TUESDAY/06:00
      - TUESDAY/22:00-WEDNESDAY/06:00
      - WEDNESDAY/22:00-THURSDAY/06:00
      - THURSDAY/22:00-FRIDAY/06:00
      - FRIDAY/22:00-MONDAY/06:00
    time-zone-name: America/New_York

Helm 차트는 downtime이나 no-downtime 중 어느 구간에서도 변경될 수 있으므로 두 키를 같은 시간대로 지정합니다. 한쪽을 all-time으로 남기면 의도한 제한이 되지 않습니다.

개별 개체의 주말 재정의

같은 maintenance-windows 맵에 다음 이름 있는 시간대를 추가합니다.

nginx-weekends:
  time-intervals:
    - SATURDAY/00:00-SUNDAY/23:59
  time-zone-name: America/New_York

이 조각의 부모는 환경 설정의 최상위 maintenance-windows입니다. managed-helm-charts에서 실습 개체의 기존 항목을 찾고 release-channel과 같은 수준에 다음 참조를 추가합니다.

maintenance-windows:
  downtime: nginx-weekends
  no-downtime: nginx-weekends

이는 환경 안의 특정 개체에 대한 재정의이며, 제품 전체의 유지보수 설정은 아닙니다. 다른 환경의 같은 제품을 함께 바꾸지 않습니다.

Review에서 변경 전후를 비교하고 Submit을 선택합니다. 예시 제목 Update maintenance window to non-business hours와 실습 목적을 담은 근거를 작성하여 변경 요청을 제출합니다. 필요한 승인을 받은 뒤 환경 Overview와 개체 상세의 유지보수 시간대를 확인합니다.

제품의 지원 시간대

다음으로 제품 자체의 변경과 자동 승격을 매일 미국 동부 시간 08:00에서 20:00 사이로 제한하는 예시를 설정합니다.

  1. Ctrl+K 또는 macOS의 Cmd+K로 제품 이름을 찾아 엽니다.
  2. Actions → Edit product settings... → Upgrades로 이동합니다.
  3. Product maintenance windows의 시간대를 New York으로 지정합니다.
  4. 요일마다 08:00에서 20:00까지의 구간을 추가합니다.
  5. Update로 변경 요청을 만들고 권한 있는 팀 구성원의 승인을 받습니다.
  6. 오른쪽 Product details → Maintenance window에서 결과를 확인합니다.

최종 시간대 판정

제품, 개체와 환경의 구간을 항상 교집합으로 계산하지 않습니다. 다음 우선순위를 적용합니다.

조건개체 변경에 사용할 시간대
제품 시간대가 있고 환경이 제품 시간대를 무시하지 않음제품 시간대
제품 시간대를 적용하지 않고 개체 재정의가 있음개체 시간대
개체 재정의도 없음환경 기본 시간대

따라서 이 실습에서 제품 시간대를 추가하고 기본 override-product-maintenance-windows: false를 유지하면 제품의 매일 08:00에서 20:00 시간대가 우선합니다. 환경에서 제품 시간대를 무시하도록 승인된 설정을 적용하면 실습 개체는 nginx-weekends를 사용합니다.

제품 시간대는 자동 승격에도 적용하지만 수동 승격은 제한하지 않습니다. 임시 시간대 예외와 회수 전환의 기본 예외는 별도로 적용하며, 변경 억제 시간대는 일반 유지보수 시간대보다 우선합니다. 최종 시간대 계산과 예외를 함께 확인합니다.