Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

새 배포 환경으로 소프트웨어 확장하기

스테이징 구성을 운영 환경에 처음 설치하거나, 스포크 환경 사이에서 소프트웨어를 옮기거나, 새 허브와 네트워크에 배포할 때는 재사용할 구성과 환경별 준비 작업을 구분해야 합니다.

제품과 구성을 모듈로 묶기

Apollo 모듈은 함께 배포할 제품과 설정 재정의를 묶습니다. 여러 Helm 차트로 이루어진 플랫폼을 반복 설치하거나 많은 환경의 구성을 맞출 때 유용합니다. 모듈을 여러 환경에 배포하고 다른 허브로 내보낼 수 있습니다.

제품 릴리스의 의존 관계를 정의하면 새 환경에서도 필요한 설치 순서를 제약으로 관리할 수 있습니다.

모듈 정의는 Git 저장소에서 버전 관리하고 CI로 새 정의를 Apollo에 게시하는 방식이 권장됩니다.

새 환경과 기존 환경의 차이

빈 환경에 모듈을 설치하면 정의한 제품들의 설치 계획이 만들어집니다. 기존 환경에서는 동일한 배포 개체 ID를 가진 대상을 모듈이 관리하도록 편입할 수 있습니다.

설치 변경 요청에서 각 대상에 대한 제품 설치, 구성 변경 또는 변경 없음의 결과를 확인합니다. 기존 배포 개체와 모듈 정의의 식별자가 같은지 먼저 검토해야 합니다.

설치본이 추적하는 릴리스 채널로 새 모듈 릴리스가 승격되면 업데이트를 제안할 수 있습니다. 각 환경의 변경 요청에서 영향을 검토합니다.

환경별 값을 하드코딩하지 않기

다음 값은 모듈 변수나 설치 시 제공하는 비밀정보로 분리합니다.

  • 이미지 가져오기용 비밀정보 이름
  • Kubernetes 네임스페이스
  • 도메인 별칭
  • 레지스트리 주소
  • 인스턴스 그룹
  • 인증기관(CA) 구성
  • 클라우드 리소스의 지역과 엔드포인트

지금 여러 환경에서 값이 같더라도 이후 이름이나 비밀값을 바꾸기 쉽게 구성하는 편이 좋습니다. 모듈이 요구하는 비밀정보는 설치 시 충족해야 합니다.

설치 전 준비할 인프라

배포 개체를 설치하기 전에 다음을 준비합니다.

준비 대상확인할 내용
네임스페이스설치할 Kubernetes 범위
인스턴스 그룹배포에 사용할 인프라 구성
아티팩트 레지스트리필요한 이미지와 산출물에 접근할 경로
인바운드·아웃바운드 정책필요한 통신과 허용 범위

배포 계획에는 모듈 정의와 일회성 환경 준비 작업을 함께 포함합니다.

승격 정책으로 환경별 릴리스 구분

모듈에 릴리스 채널 변수를 두면 환경에 맞는 채널을 설치 시 지정할 수 있습니다. 운영 환경은 운영 승격 기준을 통과한 릴리스만 받도록 구성하는 방식입니다.

가상의 평가 기준으로는 다음을 사용할 수 있습니다.

  • 스테이징에서 Pod 상태가 최소 24시간 정상으로 유지됨
  • security-scan-outcome 레이블로 보안 검사 통과 여부 확인

이러한 기준과 실제 채널 승격을 연결하여, 같은 모듈 구조를 사용하면서 환경별 릴리스 요구를 유지합니다.