Auto DevOps를 위한 다중 Kubernetes 클러스터

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

Auto DevOps를 사용할 때 여러 Kubernetes 클러스터에 다른 환경을 배포할 수 있습니다.

Auto DevOps에서 사용하는 Deploy Job 템플릿은 세 가지 환경 이름을 정의합니다.

  • review/ (모든 review/로 시작하는 환경)
  • staging
  • production

이러한 환경은 자동 배포를 사용하여 작업에 연결되므로, 각 환경마다 다른 배포 도메인을 가져야 합니다. 세 환경마다 별도의 KUBE_CONTEXTKUBE_INGRESS_BASE_DOMAIN 변수를 정의해야 합니다.

다른 클러스터로 배포

여러 Kubernetes 클러스터에 환경을 배포하려면:

  1. Kubernetes 클러스터를 생성하세요.
  2. 클러스터를 프로젝트에 연결하세요:
    1. 각 클러스터에 GitLab 에이전트를 설치하세요.
    2. 각 에이전트를 프로젝트에 액세스하도록 구성하세요.
  3. 각 클러스터에 NGINX Ingress Controller를 설치하세요. 다음 단계를 위해 IP 주소와 Kubernetes 네임스페이스를 저장하세요.
  4. Auto DevOps CI/CD 파이프라인 변수를 구성
    • 각 환경에 대한 KUBE_CONTEXT 변수를 설정하세요. 해당 클러스터의 에이전트를 가리킵니다.
    • KUBE_INGRESS_BASE_DOMAIN을 설정하세요. 각 환경의 기본 도메인을 해당 클러스터의 Ingress로 지정해야 합니다.
    • KUBE_NAMESPACE 변수를 추가하세요. 배포 대상이 되는 Kubernetes 네임스페이스의 값을 지정할 수 있습니다. 변수를 여러 환경에 적용할 수 있습니다.

사용이 중단된 인증서 기반 클러스터의 경우:

  1. 프로젝트로 이동하여 왼쪽 사이드바에서 운영 > Kubernetes 클러스터를 선택하세요.
  2. 각 클러스터의 환경 범위를 설정하세요.
  3. 각 클러스터에 대해 Ingress IP 주소에 기반한 도메인을 추가하세요.

참고: 활성 Kubernetes 클러스터를 확인할 때 클러스터 환경 범위가 적용되지 않음. Auto DevOps와 함께 다중 클러스터 설정을 사용하려면 *로 설정된 클러스터 환경 범위를 가진 후폭으로 클러스터를 생성해야 합니다. 이미 추가한 클러스터 중 하나를 후폭 클러스터로 설정할 수 있습니다.

구성 예시

클러스터 이름 클러스터 환경 범위 KUBE_INGRESS_BASE_DOMAIN KUBE CONTEXT변수 환경 범위 설명
review review/* review.example.com path/to/project:review-agent review/* 모든 리뷰 앱을 실행하는 리뷰 클러스터입니다.
staging staging staging.example.com path/to/project:staging-agent staging 선택 사항입니다. 스테이징 환경 배포를 실행하는 스테이징 클러스터입니다. 먼저 활성화해야 합니다.
production production example.com path/to/project:production-agent production 프로덕션 환경 배포를 실행하는 프로덕션 클러스터입니다. 점진적 배포를 사용할 수 있습니다.

구성 테스트

구성을 완료한 후에는 병합 요청을 생성하여 설정을 테스트하세요. Kubernetes 클러스터의 review/* 환경 범위에 리뷰 앱으로 애플리케이션이 배포되는지 확인하세요. 마찬가지로 다른 환경도 확인해보세요.