Kubernetes용 GitLab 에이전트로 마이그레이션

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

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

인증서 기반 통합은 GitLab 14.5에서 deprecated되었습니다. 폐기 계획은 다음과 같이 설명되어 있습니다:

인증서 기반 통합을 사용 중이라면 가능한 빨리 다른 워크플로우로 마이그레이션해야 합니다.

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

  • 인터넷에 노출되지 않습니다.
  • GitLab에 대한 완전한 cluster-admin 액세스가 필요하지 않습니다.
note
인증서 기반 통합은 GitLab Managed Apps, GitLab-managed 클러스터, Auto DevOps와 같은 인기 있는 GitLab 기능에 사용되었습니다. 일부 기능은 현재 인증서 기반 통합을 사용할 때에만 제공됩니다.

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

GitLab-managed 클러스터에서 마이그레이션

GitLab-managed 클러스터에서는 GitLab이 각 브랜치에 대해 별도의 서비스 계정 및 네임스페이스를 생성하고, 이러한 리소스를 사용하여 배포합니다.

GitLab 에이전트는 임펄슨네이션 전략을 사용하여 제한된 계정 액세스로 클러스터에 배포합니다. 이를 위해 다음을 수행하세요:

  1. 필요에 맞는 임펄슨네이션 전략을 선택하세요.
  2. Kubernetes에서 임펄슨네이션 된 계정 권한을 관리하기 위해 Kubernetes RBAC 규칙을 사용하세요.
  3. 임펄슨네이션을 정의하기 위해 에이전트 구성 파일에서 access_as 속성을 사용하세요.

Auto DevOps에서 마이그레이션

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

  1. 클러스터에 에이전트 설치하세요.
  2. GitLab에서 Auto DevOps를 사용하는 프로젝트로 이동하세요.
  3. 세 개의 변수를 추가하세요. 왼쪽 사이드바에서 설정 > 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. 변수 추가를 선택하세요.
  5. 왼쪽 사이드바에서 운영 > Kubernetes 클러스터를 선택하세요.
  6. 인증서 기반 클러스터 섹션에서 동일한 환경 범위를 제공하는 클러스터를 열어주세요.
  7. 세부 정보 탭을 선택하고 클러스터를 비활성화하세요.
  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. 파이프라인을 테스트하려면, 왼쪽 사이드바에서 빌드 > 파이프라인을 선택한 후 새 파이프라인을 선택하세요.

예시로 이 프로젝트를 확인하세요.

일반적인 배포로부터 마이그레이션

CI/CD 워크플로우의 과정을 따라 진행하세요.

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

GitLab Managed Apps (GMA)는 GitLab 14.0에서 폐기되었으며 GitLab 15.0에서 제거되었습니다. Kubernetes용 GitLab 에이전트는 이를 지원하지 않습니다. GMA에서 에이전트로 마이그레이션하려면 다음 단계를 거치세요:

  1. GitLab Managed Apps에서 클러스터 관리 프로젝트로 마이그레이션.
  2. 클러스터 관리 프로젝트를 에이전트 사용으로 마이그레이션.

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

GitLab 에이전트를 사용하여 클러스터 관리 프로젝트를 사용하는 방법은 여기에서 확인하세요.

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

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