实战-基于Jenkins+K8s构建DevOps平台(九)

这篇具有很好参考价值的文章主要介绍了实战-基于Jenkins+K8s构建DevOps平台(九)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验步骤如下:

    • 第一部分:安装持久化存储nfs

1、在k8s-master和k8s-node1上安装nfs服务

[root@k8s-master ~]# yum install nfs-utils -y

[root@k8s-master ~]# systemctl start nfs

[root@k8s-master ~]# systemctl enable nfs

[root@k8s-node1 ~]# yum install nfs-utils -y

[root@k8s-node1 ~]# systemctl start nfs

[root@k8s-node1 ~]# systemctl enable nfs

[root@k8s-node2 ~]# yum install nfs-utils -y

[root@k8s-node2~]# systemctl start nfs

[root@k8s-node2 ~]# systemctl enable nfs

2、在k8s-master上创建一个nfs共享目录

[root@k8s-master ~]# mkdir /data/v2 -p

[root@k8s-master ~]# vim /etc/exports

/data/v2 *(rw,no_root_squash)

3、使nfs配置文件生效

[root@k8s-master ~]# exportfs -arv

[root@k8s-master ~]# systemctl restart nfs

    • 第二部分:基于nfs做持久化存储pv

1、创建名称空间

[root@k8s-master ~]# kubectl create namespace jenkins-k8s

2、创建pv

[root@k8s-master]# kubectl apply -f pv.yaml

3、查看pv是否创建成功

[root@k8s-master]# kubectl get pv

pv.yaml文件内容如下:

apiVersion: v1

kind: PersistentVolume

metadata:

name: jenkins-K8s-pv

spec:

capacity:

storage: 10Gi

accessModes:

- ReadWriteMany

nfs:

server: 192.168.190.61

path: /data/v2

4、创建pvc

[root@k8s-master]# kubectl apply -f pvc.yaml

5、查看pvc是否创建成功

[root@k8s-master]# kubectl get pvc -n jenkins-k8s

kind: PersistentVolumeClaim

apiVersion: v1

metadata:

name: jenkins-K8s-pvc

namespace: jenkins-K8s

spec:

resources:

requests:

storage: 10Gi

accessModes:

- ReadWriteMany

    • 第三部分:在K8s集群安装Jenkins

1、创建一个sa账号

[root@k8s-master]# kubectl create sa jenkins-k8s-sa -n jenkins-k8s

2、把上面的sa账号做rbac授权

[root@k8s-master]# kubectl create clusterrolebinding jenkins-k8s-sa-cluster -n jenkins-k8s --clusterrole=cluster-admin --serviceaccount=jenkins-k8s:jenkins-k8s-sa

3、通过deployment部署jenkins

[root@k8s-node1 ~]# docker pull jenkins/jenkins:latest

[root@k8s-node1 ~]# docker load -i jenkins-jnlp.tar.gz

4、更新资源清单文件

[root@k8s-master]# kubectl apply -f jenkins-deployment.yaml

5、查看jenkins是否创建成功

[root@k8s-master jenkins]# kubectl get pods -n jenkins-k8s

6、看到jenkins-5fc55f45f4-vltrr是CrashLoopBackOff状态,查看日志:

[root@k8s-master]# kubectl logs jenkins-5fc55f45f4-vltrr -n jenkins-k8s

日志信息显示:

touch: cannot touch '/var/jenkins_home/copy_reference_file.log

'

: Permission denied

Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume

permissions?

7、报错显示没有权限操作/var/jenkins_home/copy_reference_file.log文件,解决办法如下:

[root@k8s-master]# kubectl delete -f jenkins-deployment.yaml

[root@k8s-master]# chown -R 1000.1000 /data/v2

[root@k8s-master]# kubectl apply -f jenkins-deployment.yaml

8、查看pod是否创建成功:

[root@k8s-master]# kubectl get pods -n jenkins-k8s

显示如下,说明部署成功了:

 

9、把jenkins前端加上service,提供外部网络访问

[root@k8s-master]# kubectl apply -f jenkins-service.yaml

10、查看service是否创建成功

[root@k8s-master]# kubectl get svc -n jenkins-k8s

    • 第四部分:配置Jenkins

1、在浏览器访问jenkins的web界面: http://192.168.190.61:30002/login?from=%2F

实战-基于Jenkins+K8s构建DevOps平台(九)

得到密码:

cat /data/v2/jenkins-home/secrets/initialAdminPassword

ae00364cab9c42adb2edc09b0c592473

11、通过上面可以看到service的8080端口在物理机映射的端口是30002

第四部分:配置Jenkins 2、获取管理员密码: 在nfs服务端,也就是我们的master1节点获取密码: [root@k8s-master ~]# cat /data/v2/jenkins-home/secrets/initialAdminPassword

实战-基于Jenkins+K8s构建DevOps平台(九)

 实战-基于Jenkins+K8s构建DevOps平台(九)

实战-基于Jenkins+K8s构建DevOps平台(九)

实战-基于Jenkins+K8s构建DevOps平台(九)

实战-基于Jenkins+K8s构建DevOps平台(九)

实战-基于Jenkins+K8s构建DevOps平台(九)

 实战-基于Jenkins+K8s构建DevOps平台(九)

    • 第五部分:测试Jenkins CI/CD流水线-扩展

实战-基于Jenkins+K8s构建DevOps平台(九)

这部分内容

1、Jenkins安装K8s插件

2、Jenkins安装Blueocean插件

3、配置Jenkins连接K8s集群

4、配置Jenkins slave pod模板

5、Jenkins ui界面添加dockerhub凭据

6、测试Jenkins发布应用到K8s测试、开发、生产环境-通过pipeline实现

7、基于Jenkins+K8s+Nexus+Sonarqube+gitlab+SpringCloud构建DevOps流水线

具体发布流程如下:

开发提交代码到代码仓库gitlab-jenkins检测到代码更新-调用K8s api在K8s中创建

jenkins slave pod:

Jenkins slave pod拉取代码---通过maven把拉取的代码进行构建成war包或者jar包--->上传代码到Sonarqube,进行静态代码扫描- -->基于war包构建docker image-->把镜像上传到harbor镜像仓库-->基于镜像部署应用到开发环境-->部署应用到测试环境--->部署应用到生产环境文章来源地址https://www.toymoban.com/news/detail-472425.html

到了这里,关于实战-基于Jenkins+K8s构建DevOps平台(九)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于K8s的DevOps平台实践(一)

    本篇文章基于 k8s 集群部署 gitlab、sonarQube、Jenkins 等工具,并把上述工具集成到 Jenkins 中,以 Django 项目和 SpringBoot 项目为例,通过多分支流水线及 Jenkinsfile 实现项目代码提交到不同的仓库分支,实现自动代码扫描、单元测试、docker 容器构建、k8s 服务的自动部署。 Continuous

    2024年02月03日
    浏览(46)
  • DevOps搭建(十六)-Jenkins+K8s部署详细步骤

    ​ 要想从Harbor仓库中拉取镜像,首先要往主机和从机的daemon.json文件中添加Harbor的地址信息 \\\"insecure-registries\\\":[\\\"192.168.88.125:80\\\"],别忘了80端口 添加完之后,重启下docker 要拉取镜像,需要Harbor登录进行拉取,到Kuboard控制台对应的命名空间找到 密文 菜单,点击 创建Secret 。 填写

    2024年01月16日
    浏览(47)
  • DevOps基础设施配置之jenkins对接K8S

    我们在构建K8S基于Jenkins的devops流水线的时候,有一个很重要的步骤就是将Jenkins和K8S对接,这样才能充分运用Jenkins与K8S的特性【pod slave】完成流水线的运行,本文主要记录如何配置Jenkins与K8S集群的对接 提示:因为创建过程中需要使用token凭证,因此可以先参考 步骤1.2.4 先行

    2024年02月11日
    浏览(38)
  • DevOps概念及搭建全过程(Jenkins、Harbor、SonarQube、K8s)

    在如今互联网的格局下,抢占市场变得尤为重要,因此敏捷开发越来越被大家所推崇。于是,慢慢的有了DevOps这个概念,大致意思是开发-运维一体化。 1.1 基本概念 可以看到上图是一个无穷大的一个符号,Dev对应开发,Ops对应运维。 DevOps的方式可以让公司能够更快地应对更

    2023年04月17日
    浏览(46)
  • DevOps搭建(十九)-Jenkins+K8s自动化CI搭建详细步骤

    完整的pipeline-auto.yml脚本如下 完整的Jenkinsfile脚本如下 在Jenkins插件管理中搜索GitLab插件进行安装。 进入Jenkins项目配置里的 构建触发器 ,勾选如下选项: 从系统管理-系统配置-Gitlab将验证去掉,生产最好配置保证安全。 如果是GitLab和Jenkins在同一台服务器,需要开启允许请求

    2024年01月23日
    浏览(95)
  • K8S+DevOps架构师实战课 | 汇总

    视频来源:B站《Dockerk8s教程天花板,绝对是B站讲的最好的,这一套学会k8s搞定Docker 全部核心知识都在这里》 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 1.K8S+DevOps架构师实战课 | 认识docker_热爱编程的通信人的博客-CSDN博客 2.K8S+Dev

    2024年02月13日
    浏览(46)
  • Jenkins构建项目并部署到K8S实践

    本次实践使用gitee上的开源项目悟空CRM9.0进行构建并部署到k8S中 悟空CRM9.0项目简介: 悟空CRM-基于jfinal+vue+ElementUI的前后端分离CRM系统。 项目gitee地址:https://gitee.com/wukongcrm/72crm-java.git 软件 版本 IP 备注 K8S 1.26.x 192.168.1.124 192.168.1.124为K8S集群master01节点IP地址 Harbor 2.6.2 192.168.1.

    2024年02月20日
    浏览(65)
  • DevOps基于k8s发布系统的实现

    首先,本篇文章所介绍的内容,已经有完整的实现,可以参考这里。 在微服务、DevOps和云平台流行的当下,使用一个高效的持续集成工具也是一个非常重要的事情。虽然市面上目前已经存在了比较成熟的自动化构建工具,比如jekines,还有一些商业公司推出的自动化构建工具

    2023年04月09日
    浏览(46)
  • Kubernetes(k8s)实战:使用k8s+jenkins实现CICD

    CIDI(Continuous Integration,Continuous Delivery Deployment),持续集成,持续部署,持续发布。 也就是说,在本地开发完代码之后,push到远程仓库,然后代码打包、部署的这个过程完全是自动化完成的。 但是我们不要进入一个误区,CICD并不意味着一定就是这一套流程,只要实现了代

    2024年02月12日
    浏览(49)
  • Devops系列六(CI篇之jenkinsfile)jenkins将gitlab helm yaml和argocd 串联,自动部署到K8S

    上文我们说了pipeline,已为本文铺路不少,接下里就是将之串联起来。 先想说下,为什么是jenkinsfile, 因为jenkins job还支持pipeline方式。 这种方式,不建议实际使用,仅限于测试或调试groovy代码。 下面贴出来,我们的使用方式。好处是:采用分布式的思想,改动git上的jenkinsf

    2024年02月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包