GitLab 차트를 위한 GKE 리소스 준비
완전한 기능의 GitLab 인스턴스를 위해서는 GitLab 차트를 배포하기 전에 몇 가지 리소스가 필요합니다.
아래는 GitLab 내에서 이러한 차트를 배포하고 테스트하는 방법입니다.
GKE 클러스터 생성
더 쉽게 시작할 수 있도록 클러스터 생성을 자동화하는 스크립트가 제공됩니다.
또는 클러스터를 수동으로 생성할 수도 있습니다.
전제 조건:
- 전제 조건을 설치합니다.
- Google SDK를 설치합니다.
스크립트를 통한 클러스터 생성
부트스트랩 스크립트가
GCP/GKE 사용자를 위해 설정 프로세스의 많은 부분을 자동화하도록 작성되었습니다.
이 스크립트는 다음을 수행합니다:
- 새로운 GKE 클러스터를 생성합니다.
- 클러스터가 DNS 레코드를 수정할 수 있도록 허용합니다.
-
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 항목이 준비되면 차트 설치를 계속 진행하세요.