클러스터 애플리케이션 관리
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
GitLab은 클러스터 관리 프로젝트 템플릿을 제공하며, 이를 사용하여 프로젝트를 생성합니다. 프로젝트 템플릿은 수정 없이 GitLab.com에서 작동합니다. 에이전트를 사용하여 클러스터를 GitLab과 아직 연결하지 않은 경우:
GitLab은 클러스터 관리 프로젝트 템플릿을 제공하며, 이를 사용하여 프로젝트를 생성합니다. 이 프로젝트에는 GitLab과 통합되고 GitLab 기능을 확장하는 클러스터 애플리케이션이 포함됩니다. 프로젝트에서 보여주는 패턴을 사용하여 커스텀 클러스터 애플리케이션을 확장할 수 있습니다.
프로젝트 템플릿은 수정 없이 GitLab.com에서 작동합니다. GitLab Self-Managed 인스턴스를 사용하는 경우 .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으로 설정합니다. - 새 프로젝트에서 필요에 따라 파일을 구성합니다.
클러스터 관리 프로젝트 템플릿 기반 프로젝트 생성#
클러스터 관리 프로젝트 템플릿에서 프로젝트를 생성하려면:
- 오른쪽 상단 모서리에서 Create new (+) 및 New project/repository를 선택합니다.
- Create from template을 선택합니다.
- 템플릿 목록에서 GitLab Cluster Management 옆의 Use template을 선택합니다.
- 프로젝트 세부 정보를 입력합니다.
- Create project를 선택합니다.
- 새 프로젝트에서 필요에 따라 파일을 구성합니다.
프로젝트 구성#
클러스터 관리 템플릿을 사용하여 프로젝트를 만든 후 다음을 구성할 수 있습니다:
.gitlab-ci.yml 파일#
.gitlab-ci.yml 파일:
- Helm 버전 3에 있는지 확인합니다.
- 프로젝트에서 활성화된 애플리케이션을 배포합니다.
파이프라인 정의를 편집하고 확장할 수 있습니다.
파이프라인에 사용되는 기본 이미지는 cluster-applications 프로젝트에 의해 빌드됩니다. 이 이미지에는 Helm v3 릴리스를 지원하기 위한 Bash 유틸리티 스크립트 세트가 포함됩니다.
GitLab Self-Managed 인스턴스에 있는 경우 .gitlab-ci.yml 파일을 수정해야 합니다.
특히 Automatic package upgrades 주석으로 시작하는 섹션은
include가 GitLab.com 프로젝트를 참조하기 때문에 GitLab 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 차트에 대한 기본값을 정의할 수 있습니다. 일부 앱에는 이미 정의된 기본값이 있습니다.
