GitLab 차트를 위한 GKE 리소스 준비
완전히 기능적인 GitLab 인스턴스를 구축하기 위해 GitLab 차트를 배포하기 전에 몇 가지 리소스가 필요합니다. 다음은 이러한 차트가 어떻게 배포되고 테스트되는지에 대한 내용입니다.
GKE 클러스터 생성
더 쉽게 시작하려면 클러스터 생성을 자동화하는 스크립트가 제공됩니다. 또는 수동으로 클러스터를 생성할 수도 있습니다.
전제 조건:
- 전제 조건 설치
- Google SDK 설치
스크립트로 클러스터 생성
GCP/GKE 사용자들을 위해 설정 프로세스의 많은 부분을 자동화하는 부트스트랩 스크립트가 생성되었습니다.
이 스크립트는 다음 작업을 수행합니다.
- 새 GKE 클러스터 생성
- 클러스터가 DNS 레코드를 수정할 수 있도록 허용
-
kubectl
설정 및 클러스터에 연결
스크립트는 환경 변수와 up
인수를 통해 다양한 매개변수를 읽습니다.
아래 표는 모든 변수를 설명합니다.
변수명 | 설명 | 기본값 |
---|---|---|
지역 (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 활성화 여부 (RBAC_ENABLED )
| 클러스터에 RBAC가 활성화되어 있는지 여부를 알고 있다면 이 변수 설정 | true |
사전할당 노드 (PREEMPTIBLE )
| 더 저렴하며, 클러스터는 최대 24시간 동안 유지됩니다. 노드/디스크에 SLA 없음 | false |
정적 IP 사용 여부 (USE_STATIC_IP )
| 관리되는 DNS의 새로운 IP 대신 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 지침을 따르세요.
- 각각 4 vCPU와 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)'
다음 섹션에서 DNS 이름과 바인딩하기 위해 이 IP를 사용하게 됩니다.
DNS 항목
수동으로 클러스터를 만들거나 스크립트로 USE_STATIC_IP
옵션을 사용했다면, 방금 만든 IP를 가리키는 A 레코드 와일드 카드 DNS 항목이 있는 공용 도메인이 필요합니다.
Google DNS 빠른 시작 가이드를 따라 DNS 항목을 만듭니다.
다음 단계
클러스터가 실행되고 정적 IP와 DNS 항목이 준비되면 차트 설치를 계속하세요.