使用 ArgoCD 部署 Jenkins 和靜態(tài) Agent 節(jié)點
本文節(jié)選自 第⑦期DevOps訓練營 , 對于訓練營的同學實踐此文檔依賴于基礎(chǔ)環(huán)境配置文檔, 運行K8s集群并配置NFS存儲。實際上只要有個K8s集群并安裝好Ingress、配置好持久化存儲并部署好ArgoCD就可以實踐了。

本文主要分享的是編寫Jenkins部署文件并通過ArgoCD自動化發(fā)布到Kubernetes集群。附加靜態(tài)的Jenkins Agent在Kubernetes環(huán)境的配置。

實踐效果參考此視頻:
部署文件代碼庫地址:https://jihulab.com/devopsvip/myiac/-/tree/main/devops/jenkins

實踐用到的Docker鏡像:
- docker pull jenkins/jenkins:2.415-jdk11
- docker pull jenkins/inbound-agent:latest
Step1 鏡像配置
這里是個可選的步驟,我們將鏡像下載到本地并加載到Kind集群中。
## LoadDockerImage
kind load docker-image jenkins/jenkins:2.415-jdk11 --name devopscluster
kind load docker-image jenkins/inbound-agent:latest --name devopscluster
Step2 部署Jenkins
已經(jīng)編寫好了一套K8s 清單文件和一個聲明式的Argo APP。【具體參考代碼庫】
kubectl -n argocd apply -f jenkins-argoapp.yaml
Step3 Jenkins初始化配置
從日志中獲取解鎖秘鑰:在ArgoCD選中jenkins pod 然后進入LOGS菜單。
【注意:插件安裝界面,選擇自定義,然后什么插件都不選擇,避免網(wǎng)絡(luò)問題】
Step4 創(chuàng)建Agent
新增節(jié)點
填寫節(jié)點信息
填寫配置
image.png
獲取密鑰信息:
更新此處配置:
Step5 部署Agent
kubectl -n argocd apply -f jenkins-agent-argoapp.yaml
FAQ
遇到Agent日志出現(xiàn)下面錯誤,需要安裝Instance identity插件解決。【記得插件安裝完成后重啟Jenkins】
SEVERE: http://jenkins.jenkins.svc.cluster.local:8080/tcpSlaveAgentListener/ appears to be publishing an invalid X-Instance-Identity.
5
java.io.IOException: http://jenkins.jenkins.svc.cluster.local:8080/tcpSlaveAgentListener/ appears to be publishing an invalid X-Instance-Identity.
4
at org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.resolve(JnlpAgentEndpointResolver.java:284)
3
at hudson.remoting.Engine.innerRun(Engine.java:724)
2
at hudson.remoting.Engine.run(Engine.java:540)
https://community.jenkins.io/t/invalid-x-instance-identity/4038
最后,祝實踐順利,如果遇到問題可以在代碼庫中提交Issue!
評論
圖片
表情

