Auto DevOps를 위한 여러 쿠버네티스 클러스터
GitLab v19.1Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Auto DevOps를 사용하면 서로 다른 환경을 다른 쿠버네티스 클러스터에 배포할 수 있습니다. Auto DevOps가 사용하는 Deploy Job 템플릿은 세 가지 환경 이름을 정의합니다: review/ (review/로 시작하는 모든 환경)
Auto DevOps를 사용하면 서로 다른 환경을 다른 쿠버네티스 클러스터에 배포할 수 있습니다.
Auto DevOps가 사용하는 Deploy Job 템플릿은 세 가지 환경 이름을 정의합니다:
-
review/(review/로 시작하는 모든 환경) -
staging -
production
이 환경들은 Auto Deploy를 사용하는 job에 연결되므로, 서로 다른 배포 도메인을 가져야 합니다. 세 가지 환경 각각에 대해 별도의 KUBE_CONTEXT와 KUBE_INGRESS_BASE_DOMAIN 변수를 정의해야 합니다.
다른 클러스터에 배포#
환경을 서로 다른 쿠버네티스 클러스터에 배포하려면:
-
클러스터를 프로젝트에 연결합니다:
각 클러스터에 GitLab Agent for Kubernetes 설치.
-
각 클러스터에 NGINX Ingress Controller 설치. 다음 단계를 위해 IP 주소와 쿠버네티스 네임스페이스를 저장합니다.
각 환경별 KUBE_CONTEXT 변수를 설정합니다. 값은 해당 클러스터의 에이전트를 가리켜야 합니다.
-
KUBE_INGRESS_BASE_DOMAIN을 설정합니다. 각 환경이 해당 클러스터의 Ingress를 가리키도록 기본 도메인을 구성해야 합니다. -
배포 타깃으로 지정할 쿠버네티스 네임스페이스 값으로
KUBE_NAMESPACE변수를 추가합니다. 이 변수는 여러 환경에 범위를 지정할 수 있습니다.
더 이상 사용되지 않는 인증서 기반 클러스터의 경우:
-
프로젝트로 이동하여 왼쪽 사이드바에서 Operate > Kubernetes clusters를 선택합니다.
-
각 클러스터에 대해 Ingress IP 주소를 기반으로 도메인을 추가합니다.
활성 쿠버네티스 클러스터 확인 시 클러스터 환경 범위가 적용되지 않습니다. 멀티 클러스터 설정이 Auto DevOps에서 작동하려면, Cluster environment scope를 *로 설정한 폴백 클러스터를 만들어야 합니다. 이미 추가한 클러스터 중 하나를 폴백 클러스터로 설정할 수 있습니다.
예시 구성#
| 클러스터 이름 | 클러스터 환경 범위 | KUBE_INGRESS_BASE_DOMAIN 값 | KUBE CONTEXT 값 | 변수 환경 범위 | 참고 |
|---|---|---|---|---|---|
| review | review/* | review.example.com | path/to/project:review-agent | review/* | 모든 Review App을 실행하는 review 클러스터. |
| staging | staging | staging.example.com | path/to/project:staging-agent | staging | 선택 사항. staging 환경의 배포를 실행하는 staging 클러스터. 먼저 활성화해야 합니다. |
| production | production | example.com | path/to/project:production-agent | production | production 환경 배포를 실행하는 production 클러스터. 점진적 롤아웃을 사용할 수 있습니다. |
구성 테스트#
구성을 완료한 후, 머지 리퀘스트를 생성하여 설정을 테스트합니다.
review/* 환경 범위를 가진 쿠버네티스 클러스터의 Review App으로 애플리케이션이 배포되었는지 확인합니다. 마찬가지로 다른 환경도 확인합니다.