全部產品
Search
文件中心

Container Service for Kubernetes:在ACK叢集中部署Jenkins並完成應用構建和部署

更新時間:Jul 31, 2025

Jenkins用於實現持續整合和持續部署(CI/CD)流程,您可以在ACK叢集中部署Jenkins,確保服務的高可用,並降低營運成本。本文介紹如何在ACK叢集中部署Jenkins並通過簡單的應用樣本示範其構建和部署的過程。

前提條件

注意事項

Jenkins系統的維護由開發人員自行負責,此部分不提供企業級的支援人員。

重要

Jenkins使用的Helm Chart與鏡像都來自海外源,可能出現拉取失敗的情況。您可以參考下列解決方案:

步驟一:部署Jenkins

  1. 執行以下命令,配置Jenkins Helm Repo。

    helm repo add jenkins https://charts.jenkins.io
    helm repo update

    預期輸出:

    Hang tight while we grab the latest from your chart repositories...
    ...Successfully got an update from the "jenkins" chart repository
    Update Complete. ⎈Happy Helming!⎈
  2. 安裝Jenkins。

    1. 執行以下命令,建立命名空間cicd

      kubectl create ns cicd
    2. 執行以下命令,將Jenkins部署至cicd命名空間中。

      helm -n cicd install jenkins jenkins/jenkins \
        --set persistence.storageClass="alicloud-disk-essd" \
        --set persistence.size="20Gi" \
        --set controller.serviceType="LoadBalancer"   \
        --set controller.admin.password="admin" 
      • persistence.storageClass="alicloud-disk-available":必選項,將自動選擇可用的雲端硬碟類型並建立雲端硬碟儲存卷持久化儲存jenkins_home目錄檔案。

      • persistence.size="20Gi":必選項,阿里雲ECS雲端硬碟的最小規格為20 GiB。

      • controller.serviceType="LoadBalancer":可選項,預設為ClusterIP類型。

      • controller.admin.password="admin":可選項,預設將產生隨機密碼。

      更多部署相關參數,請參見helm-charts

    3. 執行以下命令,查看並等待Jenkins Pod運行正常。

      kubectl -n cicd get po

      預期輸出:

      NAME        READY   STATUS    RESTARTS   AGE
      jenkins-0   2/2     Running   0          3m3s
  3. Jenkins的預設Service類型是ClusterIP類型,如需通過瀏覽器訪問Jenkins,請執行以下命令,變更Service類型。

    kubectl -n cicd patch svc jenkins -p '{"spec": {"type": "LoadBalancer"}}'

    然後執行以下命令查看Service外部IP。

    kubectl get -n cicd service

    預期輸出:

    NAME            TYPE           CLUSTER-IP        EXTERNAL-IP     PORT(S)          AGE
    jenkins         LoadBalancer   192.168.***.***   8.222.***.***   8080:30949/TCP   2d17h
    jenkins-agent   ClusterIP      192.168.***.*     <none>          50000/TCP        2d17h
  4. 在瀏覽器中,使用上一步得到的IP地址及連接埠訪問Jenkins服務,並輸入使用者名稱和密碼登入。

    說明

    如果您在部署Jenkins時未指定登入密碼,請執行以下命令,擷取Jenkins預設隨機密碼。

    kubectl -n cicd exec  -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo

(可選)建立流水線任務

以建立first-pipeline流水線任務為例,在構建流水線時,Jenkins會預設從當前ACK叢集中動態啟動一個Slave Pod並執行構建任務,構建任務執行完畢後會立即釋放該Slave Pod。更多Jenkins配置資訊,請參見Jenkins

  1. 登入Jenkins,在左側導覽列單擊New Item

  2. Enter an item name地區,輸入名稱first-pipeline,選擇Pipeline類型,然後單擊OK

  3. 在頁面頂部單擊Pipeline頁簽,選擇Hello World模板,然後單擊Save

    pipeline

  4. 在頁面左側導覽列中,單擊Build Now執行構建。

  5. 在頁面左側導覽列中,單擊Build History,然後單擊1#進入該流水線詳情頁面,然後單擊Console Output即可查看流水線構建結果。