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