GitLab 에이전트를 사용하여 Kubernetes로 마이그레이션

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

Kubernetes 클러스터를 GitLab과 연결하려면 다음을 사용할 수 있습니다:

인증서 기반 통합은
더 이상 지원되지 않음
GitLab 14.5에서 사용됩니다. 종료 계획은 다음과 같이 설명됩니다:

인증서 기반 통합을 사용하고 있는 경우 가능한 한 빨리 다른 워크플로우로 이동해야 합니다.

일반적으로 GitLab CI/CD에 의존하는 클러스터를 마이그레이션하려면
CI/CD 워크플로우를 사용할 수 있습니다.
이 워크플로우는 에이전트를 사용하여 클러스터에 연결합니다. 에이전트는:

  • 인터넷에 노출되지 않습니다.
  • GitLab에 대한 전체 cluster-admin 접근이 필요하지 않습니다.
note
인증서 기반 통합은 GitLab Managed Apps, GitLab 관리 클러스터 및 Auto DevOps와 같은
인기 있는 GitLab 기능을 위해 사용되었습니다.
일부 기능은 현재 인증서 기반 통합을 사용하는 경우에만 사용할 수 있습니다.

클러스터 애플리케이션 배포 마이그레이션

GitLab 관리 클러스터에서 마이그레이션

GitLab 관리 클러스터를 사용하면, GitLab은 모든 브랜치에 대해 별도의 서비스 계정 및 네임스페이스를 생성하고
이 자원을 사용하여 배포합니다.

GitLab 에이전트는 임시 역할 부여
전략을 사용하여 제한된 계정 접근으로 클러스터에 배포합니다. 이를 위해:

  1. 필요에 맞는 임시 역할 부여 전략을 선택합니다.
  2. Kubernetes에서 임시 역할 부여 계정 권한을 관리하기 위해 Kubernetes RBAC 규칙을 사용합니다.
  3. 에이전트 구성 파일에서 access_as 속성을 사용하여 임시 역할 부여를 정의합니다.

Auto DevOps에서 마이그레이션

Auto DevOps 프로젝트에서 GitLab 에이전트를 사용하여 Kubernetes 클러스터에 연결할 수 있습니다.

  1. 클러스터에 에이전트 설치합니다.
  2. GitLab에서 Auto DevOps를 사용하는 프로젝트로 이동합니다.
  3. 세 개의 변수를 추가합니다. 왼쪽 사이드바에서 Settings > CI/CD를 선택하고 Variables를 확장합니다.
    • 애플리케이션 배포 도메인 값을 지닌 KUBE_INGRESS_BASE_DOMAIN라는 키를 추가합니다.
    • path/to/agent/project:agent-name와 같은 값을 가진 KUBE_CONTEXT라는 키를 추가합니다.
      원하는 환경 스코프를 선택합니다.
      에이전트의 컨텍스트가 무엇인지 확실하지 않은 경우 .gitlab-ci.yml 파일을 편집하고
      사용 가능한 컨텍스트를 보기 위해 작업을 추가합니다:

       deploy:
        image:
          name: bitnami/kubectl:latest
          entrypoint: [""]
        script:
        - kubectl config get-contexts
      
    • 배포 대상인 Kubernetes 네임스페이스의 값을 가진 KUBE_NAMESPACE라는 키를 추가합니다.
      동일한 환경 스코프를 설정합니다.
  4. Add variable를 선택합니다.
  5. 왼쪽 사이드바에서 Operate > Kubernetes clusters를 선택합니다.
  6. 인증서 기반 클러스터 섹션에서 동일한 환경 스코프를 제공하는 클러스터를 엽니다.
  7. Details 탭을 선택하고 클러스터를 비활성화합니다.
  8. .gitlab-ci.yml 파일을 편집하고 Auto DevOps 템플릿을 사용하고 있는지 확인합니다. 예를 들어:

    include:
      template: Auto-DevOps.gitlab-ci.yml
    
    variables:
      KUBE_INGRESS_BASE_DOMAIN: 74.220.23.215.nip.io
      KUBE_CONTEXT: "gitlab-examples/ops/gitops-demo/k8s-agents:demo-agent"
      KUBE_NAMESPACE: "demo-agent"
    
  9. 파이프라인을 테스트하려면 왼쪽 사이드바에서 Build > Pipelines를 선택하고 New pipeline을 선택합니다.

예시 프로젝트를 보려면 여기를 클릭하세요.

일반 배포 마이그레이션

CI/CD 워크플로우를 따르세요.

GitLab 관리 애플리케이션에서 마이그레이션

GitLab 관리 애플리케이션(GMA)은 GitLab 14.0에서 사용 중단되었으며, GitLab 15.0에서 제거되었습니다.

Kubernetes 용 에이전트는 이를 지원하지 않습니다. GMA에서 에이전트로 마이그레이션하려면 다음 단계를 따르세요:

  1. GitLab 관리 애플리케이션에서 클러스터 관리 프로젝트로 마이그레이션.

  2. 클러스터 관리 프로젝트를 에이전트를 사용하도록 마이그레이션.

클러스터 관리 프로젝트 마이그레이션

GitLab 에이전트와 클러스터 관리 프로젝트 사용 방법을 참조하세요.

클러스터 모니터링 기능 마이그레이션

클러스터 모니터링 기능은 아직 GitLab Kubernetes 에이전트에서 지원되지 않습니다.