GitLab 차트를 위한 GKE 리소스 준비

Tier: Free, Premium, Ultimate Offering: Self-Managed

완전히 기능적인 GitLab 인스턴스를 위해서는 GitLab 차트를 배포하기 전에 몇 가지 리소스가 필요합니다. 다음은 이러한 차트가 GitLab 내에서 어떻게 배포되고 테스트되는지에 대한 내용입니다.

GKE 클러스터 생성

더 쉽게 시작하려면 클러스터 생성을 자동화하는 스크립트가 제공됩니다. 또는 수동으로 클러스터를 생성할 수도 있습니다.

필수 구성 요소:

스크립트를 사용한 클러스터 생성

GCP/GKE 사용자를 위해 설정 프로세스의 많은 부분을 자동화하는 부트스트랩 스크립트가 생성되었습니다.

이 스크립트는 다음 작업을 수행합니다.

  1. 새로운 GKE 클러스터 생성
  2. 클러스터가 DNS 레코드를 수정할 수 있도록 함
  3. kubectl을 설정하고 클러스터에 연결

스크립트는 환경 변수 및 bootstrap의 인수 또는 정리를 위한 down과 같은 다양한 매개변수를 읽습니다.

아래 표에는 모든 변수에 대한 설명이 있습니다.

변수명 설명 기본값
REGION 클러스터가 위치한 지역 us-central1
ZONE_EXTENSION 클러스터 인스턴스가 있는 존 이름의 확장 (a, b, c) b
CLUSTER_NAME 클러스터의 이름 gitlab-cluster
CLUSTER_VERSION GKE 클러스터의 버전 GKE 기본값, GKE 릴리스 노트 확인
MACHINE_TYPE 클러스터 인스턴스의 유형 n2d-standard-4
NUM_NODES 필요한 노드 수 2
AUTOSCALE_MIN_NODES autoscaler가 축소할 수 있는 최소 노드 수 0
AUTOSCALE_MAX_NODES autoscaler가 확장할 수 있는 최대 노드 수 NUM_NODES
PROJECT GCP 프로젝트 ID 기본값 없음, 설정해야 함
ADMIN_USER 설정 중에 클러스터 관리자 액세스를 할당할 사용자 현재 gcloud 사용자
RBAC_ENABLED 클러스터에 RBAC가 활성화되어 있는지 여부를 알고 있는 경우 이 변수를 설정 true
PREEMPTIBLE 더 저렴하며 클러스터는 최대 24시간 유지 false
USE_STATIC_IP 관리되는 DNS와 대신 GitLab을 위한 정적 IP 생성 false
INT_NETWORK 이 클러스터 내에서 사용할 IP 공간 기본
SUBNETWORK 이 클러스터 내에서 사용할 서브네트워크 기본

원하는 매개변수를 전달하여 스크립트를 실행합니다. PROJECT 외에는 기본 매개변수와 함께 작동할 수 있습니다.

PROJECT=<gcloud project id> ./scripts/gke_bootstrap_script.sh up

이 스크립트는 생성된 GKE 리소스를 정리하는 데에도 사용할 수 있습니다.

PROJECT=<gcloud project id> ./scripts/gke_bootstrap_script.sh down

클러스터가 생성되면 DNS 항목 생성으로 계속합니다.

수동으로 클러스터 생성

GCP에서는 Kubernetes 클러스터와 외부 IP 두 가지 리소스를 생성해야 합니다.

Kubernetes 클러스터 생성

수동으로 Kubernetes 클러스터를 프로비저닝하려면 GKE 설명서를 따릅니다.

  • 최소 2개의 노드가 있는 클러스터를 권장하며, 각각 4vCPU와 15GB RAM이 필요합니다.
  • 클러스터의 지역을 메모하세요. 다음 단계에서 필요합니다.

외부 IP 생성

클러스터가 접근 가능하도록 외부 IP가 필요합니다. 외부 IP는 지역적이어야 하며 클러스터 자체와 동일한 지역에 있어야 합니다. 전역 IP나 클러스터의 지역 외의 IP는 동작하지 않습니다.

정적 IP를 만들려면 다음을 실행합니다:

gcloud compute addresses create ${CLUSTER_NAME}-external-ip --region $REGION --project $PROJECT

새로 생성된 IP 주소를 가져오려면:

gcloud compute addresses describe ${CLUSTER_NAME}-external-ip --region $REGION --project $PROJECT --format='value(address)'

이 IP를 다음 섹션에서 DNS 이름과 결합하여 사용합니다.

DNS 항목

수동으로 클러스터를 생성하거나 스크립트로 USE_STATIC_IP 옵션을 사용했다면, 방금 생성한 IP를 가리키는 A 레코드 와일드카드 DNS 항목이 있는 공용 도메인이 있어야 합니다.

Google DNS 빠른 시작 가이드에 따라 DNS 항목을 생성합니다.

다음 단계

클러스터를 실행하고 정적 IP 및 DNS 항목을 준비한 후 차트 설치를 계속하세요.