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

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

완전한 기능의 GitLab 인스턴스를 위해서는 GitLab 차트를 배포하기 전에 몇 가지 리소스가 필요합니다.
아래는 GitLab 내에서 이러한 차트를 배포하고 테스트하는 방법입니다.

GKE 클러스터 생성

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

전제 조건:

스크립트를 통한 클러스터 생성

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

이 스크립트는 다음을 수행합니다:

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

이 스크립트는 환경 변수와 부트스트랩을 위한 up 또는 정리를 위한 down 인수에서 다양한 매개변수를 읽습니다.

아래 표는 모든 변수를 설명합니다.

Variable Description Default value
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 오토스케일러가 축소해야 하는 최소 노드 수 0
AUTOSCALE_MAX_NODES 오토스케일러가 확장해야 하는 최대 노드 수 NUM_NODES
PROJECT GCP 프로젝트의 ID 기본값 없음, 설정해야 함.
ADMIN_USER 설치 중 클러스터 관리자 접근 권한을 부여할 사용자 현재 gcloud 사용자
RBAC_ENABLED 클러스터에 RBAC가 활성화되어 있는지 알고 있다면 이 변수를 설정하세요. true
PREEMPTIBLE 더 저렴하며 클러스터는 최대 24시간 동안만 존재합니다. 노드/디스크에 SLA 없음 false
USE_STATIC_IP 관리되는 DNS와 함께 에피머럴 IP 대신 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 항목이 준비되면 차트 설치를 계속 진행하세요.