클러스터 애플리케이션 관리
- GitLab 12.10에 Helm v2를 지원하는 Helmfile 지원으로 도입되었습니다.
- Helm v2 지원은 GitLab 14.0에서 중단되었습니다. 대신 Helm v3를 사용하십시오.
- GitLab 14.5에서 GitLab 에이전트로 이관되었습니다.
GitLab은 클러스터 관리 프로젝트 템플릿을 제공하여 프로젝트를 생성할 수 있습니다.
프로젝트에는 GitLab과 통합되고 GitLab 기능을 확장하는 클러스터 애플리케이션이 포함되어 있습니다.
프로젝트에서 보여주는 패턴을 사용하여 사용자 지정 클러스터 애플리케이션을 확장할 수 있습니다.
.gitlab-ci.yml
파일을 수정해야 합니다.에이전트 및 매니페스트를 위한 하나의 프로젝트 사용
만약 아직 에이전트를 사용하여 귀하의 클러스터를 GitLab과 연결하지 않았다면:
- 클러스터 관리 프로젝트 템플릿을 기반으로 프로젝트 생성합니다.
- 프로젝트를 에이전트에 맞게 구성합니다.
- 프로젝트 설정에서,
$KUBE_CONTEXT
라는 환경 변수를 생성하고 값을path/to/agent-configuration-project:your-agent-name
로 설정합니다. - 필요에 따라 파일을 구성합니다.
에이전트와 매니페스트를 위한 별도의 프로젝트 사용
이미 에이전트를 구성하고 클러스터를 GitLab에 연결했다면:
- 클러스터 관리 프로젝트 템플릿을 기반으로 프로젝트 생성합니다.
- 에이전트를 구성한 프로젝트에서, 새 프로젝트에 대한 에이전트 액세스 권한 부여합니다.
- 새 프로젝트에서,
$KUBE_CONTEXT
라는 환경 변수를 생성하고 값을path/to/agent-configuration-project:your-agent-name
로 설정합니다. - 새 프로젝트에서, 필요에 따라 파일을 구성합니다.
클러스터 관리 프로젝트 템플릿을 기반으로 프로젝트 생성
클러스터 관리 프로젝트 템플릿에서 프로젝트 생성하는 방법:
- 왼쪽 사이드바 맨 위에서 새로 만들기() 및 새 프로젝트/리포지터리를 선택합니다.
- 템플릿에서 만들기를 선택합니다.
- 템플릿 디렉터리에서 GitLab 클러스터 관리 옆에 있는 템플릿 사용을 선택합니다.
- 프로젝트 세부 정보를 입력합니다.
- 프로젝트 생성을 선택합니다.
- 새 프로젝트에서, 필요에 따라 파일을 구성합니다.
프로젝트 구성
클러스터 관리 템플릿을 사용하여 프로젝트를 생성한 후에, 다음을 구성할 수 있습니다:
.gitlab-ci.yml
파일
.gitlab-ci.yml
파일은:
- Helm 버전 3으로 설정합니다.
- 프로젝트에서 활성화된 애플리케이션을 배포합니다.
파이프라인 정의를 편집하고 확장할 수 있습니다.
파이프라인에서 사용하는 기본 이미지는 cluster-applications 프로젝트에 의해 구축됩니다.
이 이미지에는 Helm v3 릴리스를 지원하기 위한 일련의 Bash 유틸리티 스크립트가 포함되어 있습니다.
만약 Self-managed GitLab 인스턴스를 사용 중이라면 .gitlab-ci.yml
파일을 수정해야 합니다.
특히, include
가 GitLab.com 프로젝트를 참조하기 때문에 자동 패키지 업그레이드
로 시작하는 섹션이 Self-managed 인스턴스에서 동작하지 않습니다.
이 주석 아래의 모든 내용을 제거하면 파이프라인이 성공합니다.
주요 helmfile.yml
파일
템플릿에는 Helm v3로 클러스터 애플리케이션을 관리하는 Helmfile이 포함되어 있습니다.
이 파일에는 각 앱에 대한 다른 Helm 파일 경로 디렉터리이 있습니다. 이들은 기본적으로 모두 주석 처리되어 있으므로 클러스터에서 사용하려는 앱의 경로를 주석 처리 해제해야 합니다.
기본적으로 각 하위 경로의 helmfile.yaml
에는 installed: true
라는 속성이 있습니다. 이는 클러스터 상태와 Helm 릴리스 상태에 따라 Helmfile이 실행될 때마다 앱을 설치하거나 업데이트하려고 시도한다는 것을 의미합니다.
이 속성을 installed: false
로 변경하면 Helmfile이 클러스터에서이 앱을 제거하려고 시도합니다.
Helmfile이 작동하는 방법에 대해 더 자세히 읽어보세요.
내장된 애플리케이션
템플릿에는 각 앱에 대해 구성된 helmfile.yaml
이있는 applications
디렉터리가 포함되어 있습니다.
기본 지원 애플리케이션은 다음과 같습니다:
각 애플리케이션에는 applications/{app}/values.yaml
파일이 있습니다.
GitLab Runner의 경우 파일은 applications/{app}/values.yaml.gotmpl
입니다.
이 파일에서 앱의 Helm 차트에 대한 기본값을 정의할 수 있습니다. 일부 앱은 이미 기본값이 정의되어 있습니다.