InfoGrab Docs

튜토리얼: Google Kubernetes Engine을 사용하도록 GitLab Runner 구성

요약

이 튜토리얼은 GitLab Runner가 작업을 실행하기 위해 Google Kubernetes Engine (GKE)을 사용하도록 구성하는 방법을 설명합니다. 이 튜토리얼에서는 GitLab Runner가 표준 클러스터 모드에서 작업을 실행하도록 구성합니다.

이 튜토리얼은 GitLab Runner가 작업을 실행하기 위해 Google Kubernetes Engine (GKE)을 사용하도록 구성하는 방법을 설명합니다.

이 튜토리얼에서는 GitLab Runner가 표준 클러스터 모드에서 작업을 실행하도록 구성합니다.

GKE를 사용하도록 GitLab Runner를 구성하려면:

  1. 환경 설정.
  2. 클러스터 만들기 및 연결.
  3. Kubernetes Operator 설치 및 구성.
  4. 선택 사항. 구성이 성공적으로 완료되었는지 확인.

시작하기 전에#

GKE를 사용하도록 GitLab Runner를 구성하려면 다음이 필요합니다:

환경 설정#

GKE에서 GitLab Runner를 구성하고 사용하기 위한 도구를 설치합니다.

  1. Google Cloud CLI 설치 및 구성. Google Cloud CLI를 사용하여 클러스터에 연결합니다.
  2. kubectl 설치 및 구성. kubectl을 사용하여 로컬 환경에서 원격 클러스터와 통신합니다.

클러스터 만들기 및 연결#

이 단계는 클러스터를 만들고 연결하는 방법을 설명합니다. 클러스터에 연결한 후 kubectl을 사용하여 상호 작용합니다.

  1. Google Cloud Platform에서 표준 클러스터를 만듭니다.

  2. kubectl 인증 플러그인을 설치합니다:

    gcloud components install gke-gcloud-auth-plugin
    
  3. 클러스터에 연결합니다:

    gcloud container clusters get-credentials CLUSTER_NAME --zone=CLUSTER_LOCATION
    
  4. 클러스터 구성을 봅니다:

    kubectl config view
    
  5. 클러스터에 연결되었는지 확인합니다:

    kubectl config current-context
    

Kubernetes Operator 설치 및 구성#

클러스터가 생겼으므로 이제 Kubernetes Operator를 설치하고 구성할 준비가 되었습니다.

  1. cert-manager를 설치합니다. 이미 인증서 관리자가 설치된 경우 이 단계를 건너뜁니다:

    kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.7.1/cert-manager.yaml
    
  2. 클러스터에서 실행되는 Kubernetes Operator를 관리하는 도구인 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
    
  3. Kubernetes Operator를 설치합니다:

    kubectl create -f https://operatorhub.io/install/gitlab-runner-operator.yaml
    
  4. Operator Lifecycle Manager v0.25.0 이상만 해당. 자체 인증서 관리자를 추가하거나 cert-manager를 사용합니다.

    • 자체 인증서 공급자를 추가하려면:

      1. 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
        
      2. Kubernetes 클러스터에 gitlab-runner-operator.yaml을 적용합니다:

        kubectl apply -f gitlab-runner-operator.yaml
        
    • cert-manager를 사용하려면:

      1. certificate-issuer-install.yaml을 사용하여 기본 네임스페이스에 CertificateIssuer를 설치하고, 운영자 설치와 함께 설치합니다:

        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
        
      2. Kubernetes 클러스터에 certificate-issuer-install.yaml을 적용합니다:

        kubectl create -f certificate-issuer-install.yaml
        
  5. 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
    
  6. 시크릿을 적용합니다:

    kubectl apply -f gitlab-runner-secret.yml
    
  7. 사용자 정의 리소스 정의 파일을 만들고 다음 정보를 포함합니다:

     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
    
  8. 사용자 정의 리소스 정의 파일을 적용합니다:

    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에서 작업 로그를 확인합니다:

    1. 상단 바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
    2. Build > Jobs를 선택하고 작업을 찾습니다.
    3. 작업 로그를 보려면 작업 상태를 선택합니다.

튜토리얼: Google Kubernetes Engine을 사용하도록 GitLab Runner 구성

원문 보기
요약

이 튜토리얼은 GitLab Runner가 작업을 실행하기 위해 Google Kubernetes Engine (GKE)을 사용하도록 구성하는 방법을 설명합니다. 이 튜토리얼에서는 GitLab Runner가 표준 클러스터 모드에서 작업을 실행하도록 구성합니다.

이 튜토리얼은 GitLab Runner가 작업을 실행하기 위해 Google Kubernetes Engine (GKE)을 사용하도록 구성하는 방법을 설명합니다.

이 튜토리얼에서는 GitLab Runner가 표준 클러스터 모드에서 작업을 실행하도록 구성합니다.

GKE를 사용하도록 GitLab Runner를 구성하려면:

  1. 환경 설정.
  2. 클러스터 만들기 및 연결.
  3. Kubernetes Operator 설치 및 구성.
  4. 선택 사항. 구성이 성공적으로 완료되었는지 확인.

시작하기 전에#

GKE를 사용하도록 GitLab Runner를 구성하려면 다음이 필요합니다:

환경 설정#

GKE에서 GitLab Runner를 구성하고 사용하기 위한 도구를 설치합니다.

  1. Google Cloud CLI 설치 및 구성. Google Cloud CLI를 사용하여 클러스터에 연결합니다.
  2. kubectl 설치 및 구성. kubectl을 사용하여 로컬 환경에서 원격 클러스터와 통신합니다.

클러스터 만들기 및 연결#

이 단계는 클러스터를 만들고 연결하는 방법을 설명합니다. 클러스터에 연결한 후 kubectl을 사용하여 상호 작용합니다.

  1. Google Cloud Platform에서 표준 클러스터를 만듭니다.

  2. kubectl 인증 플러그인을 설치합니다:

    gcloud components install gke-gcloud-auth-plugin
    
  3. 클러스터에 연결합니다:

    gcloud container clusters get-credentials CLUSTER_NAME --zone=CLUSTER_LOCATION
    
  4. 클러스터 구성을 봅니다:

    kubectl config view
    
  5. 클러스터에 연결되었는지 확인합니다:

    kubectl config current-context
    

Kubernetes Operator 설치 및 구성#

클러스터가 생겼으므로 이제 Kubernetes Operator를 설치하고 구성할 준비가 되었습니다.

  1. cert-manager를 설치합니다. 이미 인증서 관리자가 설치된 경우 이 단계를 건너뜁니다:

    kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.7.1/cert-manager.yaml
    
  2. 클러스터에서 실행되는 Kubernetes Operator를 관리하는 도구인 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
    
  3. Kubernetes Operator를 설치합니다:

    kubectl create -f https://operatorhub.io/install/gitlab-runner-operator.yaml
    
  4. Operator Lifecycle Manager v0.25.0 이상만 해당. 자체 인증서 관리자를 추가하거나 cert-manager를 사용합니다.

    • 자체 인증서 공급자를 추가하려면:

      1. 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
        
      2. Kubernetes 클러스터에 gitlab-runner-operator.yaml을 적용합니다:

        kubectl apply -f gitlab-runner-operator.yaml
        
    • cert-manager를 사용하려면:

      1. certificate-issuer-install.yaml을 사용하여 기본 네임스페이스에 CertificateIssuer를 설치하고, 운영자 설치와 함께 설치합니다:

        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
        
      2. Kubernetes 클러스터에 certificate-issuer-install.yaml을 적용합니다:

        kubectl create -f certificate-issuer-install.yaml
        
  5. 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
    
  6. 시크릿을 적용합니다:

    kubectl apply -f gitlab-runner-secret.yml
    
  7. 사용자 정의 리소스 정의 파일을 만들고 다음 정보를 포함합니다:

     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
    
  8. 사용자 정의 리소스 정의 파일을 적용합니다:

    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에서 작업 로그를 확인합니다:

    1. 상단 바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
    2. Build > Jobs를 선택하고 작업을 찾습니다.
    3. 작업 로그를 보려면 작업 상태를 선택합니다.