如何在 Vultr Kubernetes Engine 上安裝 GitLab Runner

介紹

GitLab Runner 是一個開源軟件系統,可以運行 CI/CD 作業並將結果發送到 GitLab。 runner 應用程序已安裝並配置在您要用於構建的機器上。 GitLab 中的每個項目都可以有自己的運行器,每個運行器都是一個容器,可以根據需要啟動和停止。

Kubernetes 是一個開源軟件系統,可以自動部署、擴展和維護容器化應用程序。 它通過將應用程序容器分組為邏輯單元來進行訪問和管理。

Kubernetes 上的 GitLab runner 用於管理 CI/CD 項目。 本教程介紹如何在 Vultr Kubernetes Engine 上安裝 GitLab Runner。

以前的要求

要學習本教程,您需要具備以下條件:

GitLab 運行器配置

從 GitLab 獲取跑步者詳細信息。 這些是代理 URL 和令牌。 該令牌用於向 GitLab 驗證代理。 在您的項目目錄中,獲取詳細信息設置>持續集成/持續集成>跑步者配置頁面,如下圖。

複製運行器 URL 和註冊令牌並保存它們以供以後 GitLab 運行器配置。

在 Vultr Kubernetes Engine (VKE) 上安裝 Runner

要將代理部署到您的 VKE 集群,您需要配置對集群的訪問。 這是使用一個kubeconfig程序。 kubeconfig 文件用於提供對 Kubernetes API 服務器的訪問。 被使用 kubectl 和其他 Kubernetes 組件來找到正確的 API 服務器並進行身份驗證。

  1. 獲取 VKE 集群的 kubeconfig 文件。

    • 在您的 Vultr 帳戶中,導航至產品 > Kubernetes > {你的集群} > 概述.

    • 點擊下載配置面板右上角的按鈕。

  2. 運行以下命令以訪問您的 VKE 集群:

                              
                                $ kubectl --kubeconfig={PATH TO THE VKE CLUSTER CONFIG FILE} get nodes
    
                              
                            

    預期表現:

                              
                                NAME                         STATUS   ROLES    AGE   VERSION
    
    gitlab-runner-1e796f3ba099   Ready    <none>   18d   v1.24.4
    
    gitlab-runner-4c11d4f0a353   Ready    <none>   18d   v1.24.4
    
    gitlab-runner-4ca2d1cacafb   Ready    <none>   18d   v1.24.4     
    
                              
                            
  3. 使用 kubectl 創建一個名為 gitlab-runner 的命名空間,如下所示:

                              
                                $ kubectl --kubeconfig={PATH TO THE VKE CLUSTER CONFIG FILE} create namespace gitlab
    
                              
                            

    命名空間用於隔離單個 Kubernetes 集群中的資源。 例如,您可以使用命名空間在同一個集群上部署多個應用程序,而不會相互干擾。 這有助於維護和未來的更新。

  4. 通過運行以下命令獲取 GitLab Runner helm chart 的副本:

                              
                                git clone https://gitlab.com/gitlab-org/charts/gitlab-runner.git
    
                              
                            

    或者,如果您使用的是 ssh 密鑰,請運行以下命令。

                              
                                git clone [email protected]:gitlab-org/charts/gitlab-runner.git
    
                              
                            
  5. 導航到克隆的存儲庫並在上設置您的 GitLab Runner values.yaml 文件如下:

                              
                                ## GitLab Runner Image
    
    
    
    image: registry.gitlab.com/gitlab-org/gitlab-runner:alpine-v15.3.0
    
    
    
    ## Specify a imagePullPolicy for the main runner deployment
    
    
    
    imagePullPolicy: IfNotPresent
    
    
    
    ## Timeout, in seconds, for liveness and readiness probes of a runner pod.
    
    probeTimeoutSeconds: 300
    
    
    
    ## The GitLab Server URL (with protocol) that want to register the runner against
    
    ##
    
    gitlabUrl: https://gitlab.com/
    
    
    
    ## The Registration Token for adding new Runners to the GitLab Server. 
    
    ##
    
    runnerRegistrationToken: "Token"
    
    ## For RBAC support:
    
    rbac:
    
      create: true
    
    
    
      ##
    
      rules:
    
       - resources: ["configmaps", "pods", "pods/attach", "secrets", "services"]
    
         verbs: ["get", "list", "watch", "create", "patch", "update", "delete"]
    
       - apiGroups: [""]
    
         resources: ["pods/exec"]
    
         verbs: ["create", "patch", "delete"]
    
    
    
    ## Configuration for the Pods that the runner launches for each new job
    
    ##
    
    runners:
    
    
    
      config: |
    
        [[runners]]
    
          [runners.kubernetes]
    
            namespace = "{{.Release.Namespace}}"
    
            image = "
                                
                                  ubuntu
                                
                                :16.04"
    
                              
                            

    筆記避免 Readiness probe failed 錯誤,設置 templatesdeployment.yaml 文件如下:

                              
                                  livenessProbe:
    
          ...
    
          initialDelaySeconds: 300
    
          ...
    
      readinessProbe:
    
          ...
    
          initialDelaySeconds: 300
    
          ...
    
                              
                            
  6. 配置 Helm Chart 後,使用以下命令部署運行器:

                              
                                helm --kubeconfig={PATH_TO_VKE_CLUSTER_CONFIG FILE} install --namespace <NAMESPACE> gitlab-runner -f <PATH_TO_CONFIG_VALUES_FILE>  gitlab/gitlab-runner
    
                              
                            

    預期表現:

                              
                                NAME: gitlab-runner
    
    LAST DEPLOYED: Thu Nov 17 17:22:08 2022
    
    NAMESPACE: gitlab
    
    STATUS: deployed
    
    REVISION: 1
    
    TEST SUITE: None
    
    NOTES:
    
    Your GitLab Runner should now be registered against the GitLab instance reachable at: "https://gitlab.com/"
    
    
    
    Runner namespace "gitlab" was found in runners.config template.
    
                              
                            

    在哪裡:

    • <NAMESPACE> 是 Kubernetes 命名空間。

    • <PATH_TO_CONFIG_VALUES_FILE> 是方向舵圖的路徑。 在這種情況下, *.tgz 程序。

  7. 通過運行以下命令檢查 pod 或 deployment 的狀態:

                              
                                kubectl --kubeconfig={PATH_TO_VKE_CLUSTER_CONFIG FILE} describe pods gitlab-runner --namespace=<NAMESPACE>
    
                              
                            

    預期表現:

                              
                                ...
    
    Events:
    
      Type    Reason     Age   From               Message
    
      ----    ------     ----  ----               -------
    
      Normal  Scheduled  30s   default-scheduler  Successfully assigned gitlab-b/gitlab-runner-85d94848d7-zs5q9 to gitlab-runner-4c11d4f0a353
    
      Normal  Pulling    30s   kubelet            Pulling image "registry.gitlab.com/gitlab-org/gitlab-runner:alpine-v15.3.0"
    
      Normal  Pulled     25s   kubelet            Successfully pulled image "registry.gitlab.com/gitlab-org/gitlab-runner:alpine-v15.3.0" in 4.909922707s
    
      Normal  Created    25s   kubelet            Created container gitlab-runner
    
      Normal  Started    25s   kubelet            Started container gitlab-runner
    
                              
                            

要檢查 pod 是否已啟動,請轉到已註冊的 GitLab 運行程序下的 GitLab。 走廊將如下圖所示顯示。

corredor registrado

結論

您已經使用 Helm Chart 在 Vultr Kubernetes Engine (VKE) 集群上完成了 GitLab Runner 的安裝。 您現在可以使用剛剛安裝的代理管理您的 CD/CI 項目。

文章標題 名稱(可選) 電子郵件(可選) 描述

發送建議

相關文章