GitLab 차트를 위한 GKE 리소스 준비
완전히 기능하는 GitLab 인스턴스를 배포하기 전에 GitLab 차트를 배포하고 테스트하기 위해 몇 가지 리소스가 필요합니다.
GKE 클러스터 생성
더 쉽게 시작하려면 클러스터 생성을 자동화하는 스크립트가 제공됩니다. 또는 매뉴얼으로 클러스터를 생성할 수도 있습니다.
사전 요구 사항:
- 사전 요구 사항 설치
- Google SDK 설치
스크립트로 클러스터 생성
GCP/GKE 사용자를 위한 설정 프로세스의 많은 부분을 자동화하기 위해 부트스트랩 스크립트가 생성되었습니다.
이 스크립트는 다음 작업을 수행합니다.
- 새로운 GKE 클러스터 생성
- 클러스터가 DNS 레코드를 수정할 수 있도록 함
-
kubectl
을 설정하고 클러스터에 연결함
스크립트는 환경 변수와 up
(부트스트랩) 또는 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 | 오토스케일러가 축소될 수 있는 최소 노드 수 | 0 |
AUTOSCALE_MAX_NODES | 오토스케일러가 확장될 수 있는 최대 노드 수 | NUM_NODES
|
PROJECT | GCP 프로젝트 ID | 기본값 없음, 설정 필요 |
ADMIN_USER | 설정 중에 클러스터 관리자 액세스를 할당할 사용자 | 현재 gcloud 사용자 |
RBAC_ENABLED | 클러스터에 RBAC가 활성화되어 있는지 여부를 알고 있다면 이 변수를 설정 | true |
PREEMPTIBLE | 저렴하며, 클러스터는 최대 24시간동안 유지됩니다. 노드/디스크에 대한 SLA 없음 | false |
USE_STATIC_IP | 관리되는 DNS와 함께 GitLab을 위한 정적 IP를 생성 | false |
INT_NETWORK | 이 클러스터 내에서 사용할 IP 공간 | 기본값 |
SUBNETWORK | 이 클러스터 내에서 사용할 서브네트워크 | 기본값 |
PROJECT
를 제외한 기본 매개변수로 스크립트를 실행합니다.
PROJECT=<gcloud 프로젝트 id> ./scripts/gke_bootstrap_script.sh up
스크립트를 사용하여 생성된 GKE 리소스를 정리하는 데도 사용할 수 있습니다.
PROJECT=<gcloud 프로젝트 id> ./scripts/gke_bootstrap_script.sh down
클러스터가 생성되면 다음 단계로 이동하여 DNS 항목을 생성하십시오.
매뉴얼 클러스터 생성
GCP에서 두 개의 리소스, Kubernetes 클러스터 및 외부 IP를 생성해야 합니다.
Kubernetes 클러스터 생성
매뉴얼으로 Kubernetes 클러스터를 프로비저닝하려면 GKE 지침을 따르세요.
- 각각 4vCPU와 15GB의 RAM이 있는 적어도 2개의 노드로 된 클러스터를 권장합니다.
- 클러스터의 지역을 기록해두어야 다음 단계에서 필요합니다.
외부 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 항목이 준비되었다면 차트 설치를 계속하세요.