使用 ArgoCD 部署 Jenkins 和静态 Agent 节点

k8s技术圈

共 1996字,需浏览 4分钟

 ·

2023-08-02 20:29

本文节选自 第⑦期DevOps训练营  , 对于训练营的同学实践此文档依赖于基础环境配置文档, 运行K8s集群并配置NFS存储。实际上只要有个K8s集群并安装好Ingress、配置好持久化存储并部署好ArgoCD就可以实践了。

51fed305d1ef30889bf06251caee2ead.webp

本文主要分享的是编写Jenkins部署文件并通过ArgoCD自动化发布到Kubernetes集群。附加静态的Jenkins Agent在Kubernetes环境的配置。

346e23ffe317701a1752e4d652f8779a.webp

实践效果参考此视频:

部署文件代码库地址:https://jihulab.com/devopsvip/myiac/-/tree/main/devops/jenkins

199975fa67d66e3737bfcdf60fc2cedb.webp

实践用到的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

已经编写好了一套K8s 清单文件和一个声明式的Argo APP。【具体参考代码库】

      
      kubectl -n argocd apply -f jenkins-argoapp.yaml 


Step3 Jenkins初始化配置

从日志中获取解锁秘钥:在ArgoCD选中jenkins pod 然后进入LOGS菜单。
86a1caaf86531f8c039fbf9236226778.webp
【注意:插件安装界面,选择自定义,然后什么插件都不选择避免网络问题】

Step4 创建Agent

新增节点
4ab5c81bce4a9482903a6c74add5d4b8.webp

填写节点信息
4131b25461da194e7ef4476f2488ff9a.webp
填写配置
9f625b7469a2737ba33eb30a9bb2a27e.webp

9dde3ea819423481efe49624436c6d61.webpimage.png

获取密钥信息:
b69a059c0a2a76d75f21762b9ebdb48a.webp

更新此处配置:
e2ce316cf2deb36cf1603c3be2b2c346.webp

Step5 部署Agent

      
      kubectl -n argocd apply -f jenkins-agent-argoapp.yaml 


FAQ

遇到Agent日志出现下面错误,需要安装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
bc07772aa7aff43c16183444083e9b58.webp

最后,祝实践顺利,如果遇到问题可以在代码库中提交Issue!


fc73f18618e245f8ad9a191aa1454030.webp


浏览 64
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报