在ACK Serverless集群中部署Jenkins并完成應(yīng)用構(gòu)建和部署
本文介紹如何在阿里云ACK Serverless集群中部署Jenkins并通過簡單的應(yīng)用示例演示其構(gòu)建和部署的過程。
前提條件
已創(chuàng)建ACK Serverless集群。具體操作,請參見創(chuàng)建ACK Serverless集群。
已通過kubectl連接Kubernetes集群。具體操作,請參見通過kubectl連接Kubernetes集群。
注意事項(xiàng)
Jenkins系統(tǒng)的維護(hù)由開發(fā)者自行負(fù)責(zé),此部分不提供企業(yè)級的技術(shù)支持。
步驟一:部署Jenkins
執(zhí)行以下命令,配置Jenkins Helm Repo。
helm repo add jenkins https://charts.jenkins.io helm repo update
預(yù)期輸出:
Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "jenkins" chart repository Update Complete. ?Happy Helming!?
說明由于以上倉庫屬于海外Helm倉庫,ACK Serverless集群在中國內(nèi)地配置該Helm Repo時會稍微慢些,請您耐心等待。
安裝Jenkins。
執(zhí)行以下命令,創(chuàng)建命名空間
cicd
。kubectl create ns cicd
創(chuàng)建NAS共享存儲卷。
共享存儲卷用于保存Jenkins home中的數(shù)據(jù),否則Jenkins Master Pod重啟后,Jenkins的所有配置將會丟失。
當(dāng)您選擇CSI插件時,創(chuàng)建具體操作,請參見使用NAS靜態(tài)存儲卷。
當(dāng)您選擇Flexvolume插件時,創(chuàng)建具體操作,請參見使用NAS靜態(tài)存儲卷。
執(zhí)行以下命令,將Jenkins部署至
cicd
命名空間中。helm -n cicd install jenkins jenkins/jenkins \ --set persistence.existingClaim=pvc-nas \ --set controller.serviceType="LoadBalancer" \ --set controller.adminPassword="admin"
persistence.existingClaim=pvc-nas:必選項(xiàng),在
cicd
命名空間下創(chuàng)建的NAS存儲卷的PVC名稱為pvc-nas。controller.serviceType="LoadBalancer":可選項(xiàng),默認(rèn)為ClusterIP類型。
controller.adminPassword="admin":可選項(xiàng),默認(rèn)將生成隨機(jī)密碼。隨機(jī)密碼獲取方式請參見如何通過LoadBalancer訪問Jenkins服務(wù)以及獲取默認(rèn)隨機(jī)密碼。
更多部署相關(guān)參數(shù),請參見helm-charts。
執(zhí)行以下命令,查看并等待Jenkins Pod運(yùn)行正常。
kubectl -n cicd get po
預(yù)期輸出:
NAME READY STATUS RESTARTS AGE jenkins-0 2/2 Running 0 3m3s
瀏覽器訪問Jenkins服務(wù),并輸入用戶名和密碼登錄。
步驟二:創(chuàng)建流水線任務(wù)
以創(chuàng)建first-pipeline流水線任務(wù)為例,在構(gòu)建流水線時,Jenkins會默認(rèn)從當(dāng)前ACK Serverless集群中動態(tài)啟動一個Slave Pod并執(zhí)行構(gòu)建任務(wù),構(gòu)建任務(wù)執(zhí)行完畢后會立即釋放該Slave Pod。更多Jenkins配置信息,請參見Jenkins。
登錄Jenkins,在左側(cè)導(dǎo)航欄單擊New Item。
在Enter an item name區(qū)域,輸入名稱first-pipeline,選擇Pipeline類型,然后單擊OK。
在頁面頂部單擊Pipeline頁簽,選擇Hello World模板,然后單擊Save。
在頁面左側(cè)導(dǎo)航欄中,單擊Build Now執(zhí)行構(gòu)建。
在頁面左側(cè)導(dǎo)航欄中,單擊Build History,然后單擊1#進(jìn)入該流水線詳情頁面,然后單擊Console Output即可查看流水線構(gòu)建結(jié)果。
如何通過LoadBalancer訪問Jenkins服務(wù)以及獲取默認(rèn)隨機(jī)密碼
Jenkins的默認(rèn)服務(wù)類型是ClusterIP類型,如需使用LoadBalancer暴露服務(wù),請執(zhí)行以下命令。
kubectl -n cicd patch svc jenkins -p '{"spec": {"type": "LoadBalancer"}}'
如果您在部署Jenkins時未指定登錄密碼,請執(zhí)行以下命令,獲取Jenkins默認(rèn)隨機(jī)密碼。
kubectl -n cicd exec -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo