基于K8s环境·使用ArgoCD部署Jenkins和静态Agent节点

今天是「DevOps云学堂」与你共同进步的第 47 天

第⑦期DevOps实战训练营· 7月15日已开营

实践环境升级基于K8s和ArgoCD


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

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

实践效果参考此视频:

部署文件代码库地址: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集群中。

go 复制代码
## 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。【具体参考代码库】

go 复制代码
kubectl -n argocd apply -f jenkins-argoapp.yaml

Step3 Jenkins初始化配置

从日志中获取解锁秘钥:在ArgoCD选中jenkins pod 然后进入LOGS菜单。

【注意:插件安装界面,选择自定义,然后什么插件都不选择哈 避免网络问题】

Step4 创建Agent

新增节点

填写节点信息

填写配置

image.png

获取密钥信息:

更新此处配置:

Step5 部署Agent

go 复制代码
kubectl -n argocd apply -f jenkins-agent-argoapp.yaml

FAQ

遇到Agent日志出现下面错误,需要安装Instance identity插件解决。【记得插件安装完成后重启Jenkins】

go 复制代码
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!

相关推荐
weirong40 分钟前
图解 client-go Informer:手写一个 mini-Informer 才敢说懂
kubernetes
.冰块.1 小时前
流量大了自动加 Pod!K8s HPA 扩缩容与 ResourceQuota/LimitRange 资源管控实战
linux·云原生·容器·kubernetes·hpa·quota·limitrange
方便面不加香菜1 小时前
Docker Container -- 容器命令详解
运维·docker·容器
Z21-X3 小时前
云原生运维实战笔记:企业网站综合上云部署与云运维服务全景解析
运维·笔记·学习·云原生
qq_452396233 小时前
第三篇:《从 ZooKeeper 到 KRaft 的迁移实战:前置条件、三阶段流程与回滚策略》
分布式·zookeeper·云原生
分布式存储与RustFS4 小时前
Longhorn 的卷备份别堆本地盘:用 RustFS 给它当 S3 备份目标
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
工业一体机老司机15 小时前
Docker部署工控机采集服务 Compose编排与开机自启
运维·docker·容器
DolitD17 小时前
UE像素流与云渲染技术方案对比分析
3d·云原生·ue5·云计算·图形渲染
这个DBA有点耶19 小时前
云数据库半夜卡顿,CPU才30%?深挖云盘IOPS突发限制与内核挂起机制
数据库·mysql·云原生
miaobinfei21 小时前
docker拉取dify镜像,执行docker compose up -d 报错
运维·docker·容器