클러스터 관리 프로젝트 (폐기됨)

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed형, GitLab Dedicated
caution
클러스터 관리 프로젝트는 폐기되었습니다 GitLab 14.5에서. 클러스터 애플리케이션을 관리하려면 GitLab 에이전트와 함께 클러스터 관리 프로젝트 템플릿을 사용하세요.
Self-Managed형 GitLab에서는 기본적으로이 기능을 사용할 수 없습니다. 사용하려면 관리자가 certificate_based_clusters라는 피처 플래그를 활성화할 수 있습니다.

프로젝트를 클러스터의 관리 프로젝트로 지정할 수 있습니다. 관리 프로젝트는 Kubernetes cluster-admin 권한으로 배포 작업을 실행하는 데 사용할 수 있습니다.

다음과 같은 경우 유용합니다:

  • 클러스터 전체 애플리케이션을 클러스터에 설치하기 위한 파이프라인, 자세한 내용은 관리 프로젝트 템플릿을 참조하십시오.
  • cluster-admin 권한이 필요한 모든 작업.

권한

관리 프로젝트만 cluster-admin 권한을 받습니다. 다른 모든 프로젝트는 namespace scoped edit level privileges를 계속 받습니다.

관리 프로젝트는 다음에서 제한됩니다:

  • 프로젝트 수준 클러스터의 경우 관리 프로젝트는 클러스터 프로젝트와 동일한 네임 스페이스(또는 하위)에 있어야합니다.
  • 그룹 수준 클러스터의 경우 관리 프로젝트는 클러스터 그룹과 동일한 그룹(또는 하위)에 있어야합니다.
  • 인스턴스 수준 클러스터의 경우 해당 제한이 없습니다.

클러스터 관리 프로젝트 생성 및 구성하는 방법

클러스터를 관리하기 위해 클러스터 관리 프로젝트를 사용하려면:

  1. 클러스터 관리 프로젝트로 사용할 새 프로젝트를 만듭니다.
  2. 프로젝트를 클러스터 관리 프로젝트와 연결합니다.
  3. 클러스터의 파이프라인을 구성합니다.
  4. 환경 범위 설정합니다.

클러스터 관리 프로젝트와 클러스터 연결

클러스터 관리 프로젝트를 클러스터와 연결하려면:

  1. 적절한 구성 페이지로 이동합니다. 다음을 참고하십시오:
    • 프로젝트 수준 클러스터의 경우, 프로젝트의 운영 > 쿠버네티스 클러스터 페이지로 이동하십시오.
    • 그룹 수준 클러스터의 경우, 그룹의 쿠버네티스 페이지로 이동하십시오.
    • 인스턴스 수준 클러스터의 경우:
      1. 왼쪽 사이드 바에서 아래로 스크롤하여 관리자 영역을 선택합니다.
      2. 쿠버네티스를 선택합니다.
  2. 고급 설정을 확장합니다.
  3. 클러스터 관리 프로젝트 드롭다운 디렉터리에서 이전 단계에서 만든 클러스터 관리 프로젝트를 선택합니다.

파이프라인 구성

프로젝트를 클러스터의 관리 프로젝트로 지정한 후, 해당 프로젝트에 .gitlab-ci.yml 파일을 추가합니다. 예:

클러스터 구성:
  stage: deploy
  script: kubectl get namespaces
  environment:
    name: production

환경 범위 설정

다중 클러스터를 동일한 관리 프로젝트에 연결하는 경우 환경 범위를 설정할 수 있습니다.

각 범위는 관리 프로젝트의 하나의 클러스터에서만 사용할 수 있습니다.

예를들어, 다음 Kubernetes 클러스터가 관리 프로젝트에 연결되어 있다고 가정해 봅시다:

클러스터 환경 범위
개발 *
스테이징 staging
프로덕션 production

.gitlab-ci.yml 파일에서 설정된 환경은 개발, 스테이징 및 프로덕션 클러스터로 배포됩니다.

단계:
  - deploy

개발 클러스터 구성:
  stage: deploy
  script: kubectl get namespaces
  environment:
    name: development

스테이징 클러스터 구성:
  stage: deploy
  script: kubectl get namespaces
  environment:
    name: staging

프로덕션 클러스터 구성:
  stage: deploy
  script: kubectl get namespaces
  environment:
    name: production