튜토리얼: Google Kubernetes Engine 사용을 위한 GitLab Runner 구성
이 튜토리얼은 어떻게 Google Kubernetes Engine (GKE)를 사용하여 GitLab Runner를 구성하여 작업을 실행하는지에 대해 설명합니다.
이 튜토리얼에서는 GitLab Runner를 표준 클러스터 모드로 구성합니다.
GKE를 사용하도록 GitLab Runner를 구성하는 방법:
시작하기 전에
GKE를 사용하도록 GitLab Runner를 구성하려면 다음을 수행해야 합니다:
- 관리자 또는 소유자 역할이 있는 프로젝트가 필요합니다. 프로젝트가 없는 경우 생성할 수 있습니다.
- 프로젝트 러너 인증 토큰을 얻습니다.
- GitLab Runner를 설치합니다.
환경 설정
GKE에서 GitLab Runner를 구성하고 사용하기 위한 도구를 설치합니다.
- Google Cloud CLI 설치 및 구성. Google Cloud CLI를 사용하여 클러스터에 연결합니다.
- kubectl 설치 및 구성. kubectl을 사용하여 로컬 환경에서 원격 클러스터와 통신합니다.
클러스터 생성 및 연결
이 단계에서는 클러스터를 생성하고 연결하는 방법에 대해 설명합니다. 클러스터에 연결한 후에는 kubectl을 사용하여 상호 작용합니다.
-
Google Cloud 플랫폼에서 표준 클러스터를 생성합니다.
-
kubectl 인증 플러그인을 설치합니다:
gcloud components install gke-gcloud-auth-plugin
-
클러스터에 연결합니다:
gcloud container clusters get-credentials CLUSTER_NAME --zone=CLUSTER_LOCATION
-
클러스터 구성을 확인합니다:
kubectl config view
-
클러스터에 연결되었는지 확인합니다:
kubectl config current-context
Kubernetes 오퍼레이터 설치 및 구성
이제 클러스터가 준비되었으므로 Kubernetes 오퍼레이터를 설치하고 구성할 준비가 되었습니다.
-
cert-manager
를 설치합니다. 이미 인증서 관리자가 설치되어 있는 경우 이 단계를 건너뜁니다:kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.7.1/cert-manager.yaml
-
클러스터에서 실행되는 Kubernetes 오퍼레이터를 관리하는 도구인 Operator Lifecycle Manager (OLM)를 설치합니다:
curl --silent --location "https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.24.0/install.sh" \ | bash -s v0.24.0
-
Kubernetes 오퍼레이터를 설치합니다:
kubectl create -f https://operatorhub.io/install/gitlab-runner-operator.yaml
-
Operator Lifecycle Manager v0.25.0 이상 버전의 경우. 고유한 인증서 관리자를 추가하거나
cert-manager
를 사용합니다.-
고유한 인증서 제공자를 추가하려면:
-
gitlab-runner-operator.yaml
에서env
설정 내에서 인증서 네임스페이스 및 인증서 이름을 정의합니다:cat > gitlab-runner-operator.yaml << EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: gitlab-runner-operator namespace: gitlab-ns spec: channel: stable name: gitlab-runner-operator source: operatorhubio-catalog ca: webhook-server-cert sourceNamespace: olm config: env: - name: CERTIFICATE_NAMESPACE value: cert_namespace_desired_value - name: CERTIFICATE_NAME value: cert_name_desired_value EOF
-
gitlab-runner-operator.yaml
을 Kubernetes 클러스터에 적용합니다:kubectl apply -f gitlab-runner-operator.yaml
-
-
cert-manager
를 사용하는 경우:-
연산자 설치에 추가로
certificate-issuer-install.yaml
을 사용하여 기본 네임스페이스에Certificate
및Issuer
를 설치합니다:cat > certificate-issuer-install.yaml << EOF apiVersion: v1 kind: Namespace metadata: labels: app.kubernetes.io/component: controller-manager app.kubernetes.io/managed-by: olm app.kubernetes.io/name: gitlab-runner-operator name: gitlab-runner-system --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: gitlab-runner-serving-cert namespace: gitlab-runner-system spec: dnsNames: - gitlab-runner-webhook-service.gitlab-runner-system.svc - gitlab-runner-webhook-service.gitlab-runner-system.svc.cluster.local issuerRef: kind: Issuer name: gitlab-runner-selfsigned-issuer secretName: webhook-server-cert --- apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: gitlab-runner-selfsigned-issuer namespace: gitlab-runner-system spec: selfSigned: {} EOF
-
certificate-issuer-install.yaml
을 Kubernetes 클러스터에 적용합니다:kubectl create -f certificate-issuer-install.yaml
-
-
-
GitLab
프로젝트에서runner-registration-token
을 포함하는 시크릿을 생성합니다:cat > gitlab-runner-secret.yml << EOF apiVersion: v1 kind: Secret metadata: name: gitlab-runner-secret type: Opaque stringData: runner-token: YOUR_RUNNER_AUTHENTICATION_TOKEN EOF
-
시크릿을 적용합니다:
kubectl apply -f gitlab-runner-secret.yml
-
사용자 정의 리소스 정의 파일을 생성하고 다음 정보를 포함합니다:
cat > gitlab-runner.yml << EOF apiVersion: apps.gitlab.com/v1beta2 kind: Runner metadata: name: gitlab-runner spec: gitlabUrl: https://gitlab.example.com buildImage: alpine token: gitlab-runner-secret EOF
-
사용자 정의 리소스 정의 파일을 적용합니다:
kubectl apply -f gitlab-runner.yml
이것으로 GitLab Runner를 GKE에서 사용할 수 있도록 구성했습니다. 다음 단계에서 구성이 작동하는지 확인할 수 있습니다.
구성 확인
GKE 클러스터에서 러너가 실행 중인지 확인하려면 다음 방법 중 하나를 사용할 수 있습니다.
-
다음 명령을 사용합니다.
kubectl get pods
다음 출력이 표시되어야 합니다. 이는 러너가 GKE 클러스터에서 실행 중임을 보여줍니다.
NAME READY STATUS RESTARTS AGE gitlab-runner-hash-short_hash 1/1 Running 0 5m
-
GitLab에서 작업 로그를 확인합니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 빌드 > 작업을 선택하고 작업을 찾습니다.
- 작업 로그를 보려면 작업 상태를 선택합니다.