当前位置: 首页 > news >正文

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

a8c87c12e1d5bd6340c37080b2e1d010.png

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

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

实践环境升级基于K8s和ArgoCD


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

41cccbcf35cc4a6af03a7375ddc18c0f.png

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

27db45dd4fe4142fc3076a033a4900e1.png

实践效果参考此视频:

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

f171acb5fa2cf32f7d401e55130b9262.png

实践用到的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菜单。
bc4416afdb061b245435f2c1acb793ba.png
【注意:插件安装界面,选择自定义,然后什么插件都不选择哈 避免网络问题】

Step4 创建Agent

新增节点
3ac323dd325796e262cf5373ed30acb8.png

填写节点信息
bb1e9c525e17e8d8de615921c6f0fb2f.png
填写配置
c064f01931f733999e4b050ad5210ec5.png

f9701c1c1989e1f9fbbe02bf94129de9.png
image.png

获取密钥信息:
4430f37c50a4ef1805c190bd17c22273.png

更新此处配置:
12bf441c4b255bba9338b2ce5bdc46df.png

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.
4at org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.resolve(JnlpAgentEndpointResolver.java:284)
3at hudson.remoting.Engine.innerRun(Engine.java:724)
2at hudson.remoting.Engine.run(Engine.java:540)

https://community.jenkins.io/t/invalid-x-instance-identity/4038
a11589c3388210b28de1bd4cdbeada15.png

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

http://www.lryc.cn/news/99114.html

相关文章:

  • 874. 模拟行走机器人
  • 【Linux】- RPM 与 YUM
  • Visual Studio 2015编译器 自动生成 XXX_EXPORTS宏
  • HTML5的应用现状与发展前景
  • day44-Spring_AOP
  • selenium IDE 接入jenkins-转载
  • 云计算结合数据科学突破信息泛滥(下)
  • 蓝桥杯单片机第十二届国赛 真题+代码
  • MyBatis学习笔记之缓存
  • ​小程序 WxValidate.js ​再次封装
  • redis 第三章
  • MYSQL常见面试题汇总
  • Java接口通过token登录实现页面跳转到登录成功后的页面
  • Linux-文件管理
  • Android getevent用法详解
  • 面试题-TS(二):如何定义 TypeScript 中的变量和函数类型?
  • 【4】-多个User执行测试
  • 基于Eisvogel模板的Markdown导出PDF方法
  • linux服务器安装redis
  • QT中信号和槽本质
  • layui各种事件无效(例如表格重载或 分页插件按钮失效)的解决方法
  • flutter开发实战-父子Widget组件调用方法
  • 策略模式的实现与应用:掌握灵活算法切换的技巧
  • 当ChatGPT应用在汽车行业,具体有哪些场景?
  • 行为型-中介者模式(Mediator Pattern)
  • Kibana+Prometheus+node_exporter 监控告警部署
  • 【前端知识】JavaScript——设计模式(工厂模式、构造函数模式、原型模式)
  • 未来的算法备案法规:创新和安全如何兼顾?
  • pycharm 使用远程服务器 jupyter (本地jupyter同理)
  • leetcode 376. 摆动序列