InfoGrab DocsInfoGrab Docs

클러스터 애플리케이션 관리

요약

GitLab은 클러스터 관리 프로젝트 템플릿을 제공하며, 이를 사용하여 프로젝트를 생성합니다. 프로젝트 템플릿은 수정 없이 GitLab.com에서 작동합니다. 에이전트를 사용하여 클러스터를 GitLab과 아직 연결하지 않은 경우:

GitLab은 클러스터 관리 프로젝트 템플릿을 제공하며, 이를 사용하여 프로젝트를 생성합니다. 이 프로젝트에는 GitLab과 통합되고 GitLab 기능을 확장하는 클러스터 애플리케이션이 포함됩니다. 프로젝트에서 보여주는 패턴을 사용하여 커스텀 클러스터 애플리케이션을 확장할 수 있습니다.

Note

프로젝트 템플릿은 수정 없이 GitLab.com에서 작동합니다. GitLab Self-Managed 인스턴스를 사용하는 경우 .gitlab-ci.yml 파일을 수정해야 합니다.

에이전트와 매니페스트에 하나의 프로젝트 사용#

에이전트를 사용하여 클러스터를 GitLab과 아직 연결하지 않은 경우:

  1. 클러스터 관리 프로젝트 템플릿에서 프로젝트 생성.
  2. 에이전트를 위한 프로젝트 구성.
  3. 프로젝트 설정에서 $KUBE_CONTEXT라는 환경 변수를 만들고 값을 path/to/agent-configuration-project:your-agent-name으로 설정합니다.
  4. 필요에 따라 파일을 구성합니다.

에이전트와 매니페스트에 별도 프로젝트 사용#

이미 에이전트를 구성하고 GitLab과 클러스터를 연결한 경우:

  1. 클러스터 관리 프로젝트 템플릿에서 프로젝트 생성.
  2. 에이전트를 구성한 프로젝트에서 새 프로젝트에 에이전트 액세스 권한 부여.
  3. 새 프로젝트에서 $KUBE_CONTEXT라는 환경 변수를 만들고 값을 path/to/agent-configuration-project:your-agent-name으로 설정합니다.
  4. 새 프로젝트에서 필요에 따라 파일을 구성합니다.

클러스터 관리 프로젝트 템플릿 기반 프로젝트 생성#

클러스터 관리 프로젝트 템플릿에서 프로젝트를 생성하려면:

  1. 오른쪽 상단 모서리에서 Create new (+) 및 New project/repository를 선택합니다.
  2. Create from template을 선택합니다.
  3. 템플릿 목록에서 GitLab Cluster Management 옆의 Use template을 선택합니다.
  4. 프로젝트 세부 정보를 입력합니다.
  5. Create project를 선택합니다.
  6. 새 프로젝트에서 필요에 따라 파일을 구성합니다.

프로젝트 구성#

클러스터 관리 템플릿을 사용하여 프로젝트를 만든 후 다음을 구성할 수 있습니다:

.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 차트에 대한 기본값을 정의할 수 있습니다. 일부 앱에는 이미 정의된 기본값이 있습니다.

클러스터 애플리케이션 관리

GitLab v19.2
Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

GitLab은 클러스터 관리 프로젝트 템플릿을 제공하며, 이를 사용하여 프로젝트를 생성합니다. 프로젝트 템플릿은 수정 없이 GitLab.com에서 작동합니다. 에이전트를 사용하여 클러스터를 GitLab과 아직 연결하지 않은 경우:

GitLab은 클러스터 관리 프로젝트 템플릿을 제공하며, 이를 사용하여 프로젝트를 생성합니다. 이 프로젝트에는 GitLab과 통합되고 GitLab 기능을 확장하는 클러스터 애플리케이션이 포함됩니다. 프로젝트에서 보여주는 패턴을 사용하여 커스텀 클러스터 애플리케이션을 확장할 수 있습니다.

Note

프로젝트 템플릿은 수정 없이 GitLab.com에서 작동합니다. GitLab Self-Managed 인스턴스를 사용하는 경우 .gitlab-ci.yml 파일을 수정해야 합니다.

에이전트와 매니페스트에 하나의 프로젝트 사용#

에이전트를 사용하여 클러스터를 GitLab과 아직 연결하지 않은 경우:

  1. 클러스터 관리 프로젝트 템플릿에서 프로젝트 생성.
  2. 에이전트를 위한 프로젝트 구성.
  3. 프로젝트 설정에서 $KUBE_CONTEXT라는 환경 변수를 만들고 값을 path/to/agent-configuration-project:your-agent-name으로 설정합니다.
  4. 필요에 따라 파일을 구성합니다.

에이전트와 매니페스트에 별도 프로젝트 사용#

이미 에이전트를 구성하고 GitLab과 클러스터를 연결한 경우:

  1. 클러스터 관리 프로젝트 템플릿에서 프로젝트 생성.
  2. 에이전트를 구성한 프로젝트에서 새 프로젝트에 에이전트 액세스 권한 부여.
  3. 새 프로젝트에서 $KUBE_CONTEXT라는 환경 변수를 만들고 값을 path/to/agent-configuration-project:your-agent-name으로 설정합니다.
  4. 새 프로젝트에서 필요에 따라 파일을 구성합니다.

클러스터 관리 프로젝트 템플릿 기반 프로젝트 생성#

클러스터 관리 프로젝트 템플릿에서 프로젝트를 생성하려면:

  1. 오른쪽 상단 모서리에서 Create new (+) 및 New project/repository를 선택합니다.
  2. Create from template을 선택합니다.
  3. 템플릿 목록에서 GitLab Cluster Management 옆의 Use template을 선택합니다.
  4. 프로젝트 세부 정보를 입력합니다.
  5. Create project를 선택합니다.
  6. 새 프로젝트에서 필요에 따라 파일을 구성합니다.

프로젝트 구성#

클러스터 관리 템플릿을 사용하여 프로젝트를 만든 후 다음을 구성할 수 있습니다:

.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 차트에 대한 기본값을 정의할 수 있습니다. 일부 앱에는 이미 정의된 기본값이 있습니다.