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

k8s+jenkins+harbor构建Devops平台

一、环境准备

1、准备一主一从k8s机器,(设备好可以一主多从也行)

2、一台harbor仓库机器(dockerhub访问不了)

二、安装nfs服务

1、在k8s机器上

yum install nfs-utils -y
systemctl start nfs
systemctl enable nfs

2、创建共享目录

mkdir /data/v1 -p    #看你喜欢chown -R 1000.1000 /data/v1
vim /etc/exportfs/data/v1 192.168.200.0/24(rw,no_root_squash)
##使配置文件生效
exportfs -arv
systemctl restart nfs

#######为了后面pod的pv和pvc持久化存储

三、安装jenkins

1、创建命名空间

kubectl create namespace jenkins-k8s

2、创建pv

[root@master1 ~]# cat pv.yaml 
apiVersion: v1 
kind: PersistentVolume 
metadata: name: jenkins-k8s-pv 
spec: capacity: storage: 10Gi accessModes: - ReadWriteMany nfs: server: 192.168.200.20 path: /data/v2#创建资源清单kubectl apply -f pv.yaml

查看pv是否创建成功

kubectl get pv

3、创建pvc

[root@master1 ~]# cat pvc.yaml 
kind: PersistentVolumeClaim 
apiVersion: v1 
metadata: name: jenkins-k8s-pvc namespace: jenkins-k8s 
spec: resources: requests: storage: 10Gi accessModes: - ReadWriteMany#创建资源清单
kubectl apply -f pvc.yaml
kubectl get pvc -n jenkins-k8s

4、创建sa账号(在k8s中与Kubernetes API 的交互)

kubectl create sa jenkins-k8s-sa -n jenkins-k8s

做rbac授权

kubectl create clusterrolebinding jenkins-k8s-sa-cluster -n jenkins-k8s --clusterrole=cluster-admin --serviceaccount=jenkins-k8s:jenkins-k8s-sa###把名为 jenkins-k8s-sa 的 ServiceAccount 绑定到 cluster-admin ClusterRole,从而赋予它 整个集群的管理员权限。
Jenkins 使用这个 SA 启动后,通过 Kubernetes 插件或 kubectl 调用 API 时,会有集群管理员权限。

5、过 deployment 部署 jenkins

#jenkins的镜像要在2.4版本上,否则有一些插件安装不了、

[root@master1 ~]# cat jenkins-deployment.yaml 
kind: Deployment
apiVersion: apps/v1
metadata:name: jenkinsnamespace: jenkins-k8s
spec:replicas: 1selector:matchLabels:app: jenkinstemplate:metadata:labels:app: jenkinsspec:serviceAccount: jenkins-k8s-sacontainers:- name: jenkinsimage: jenkins/jenkins:ltsimagePullPolicy: IfNotPresentports:- containerPort: 8080name: webprotocol: TCP- containerPort: 50000name: agentprotocol: TCPresources:limits:cpu: 1000mmemory: 1Girequests:cpu: 500mmemory: 512MilivenessProbe:httpGet:path: /loginport: 8080initialDelaySeconds: 90timeoutSeconds: 45failureThreshold: 2readinessProbe:httpGet:path: /loginport: 8080initialDelaySeconds: 90timeoutSeconds: 45failureThreshold: 2volumeMounts:- name: jenkins-volumesubPath: jenkins-homemountPath: /var/jenkins_homevolumes:- name: jenkins-volumepersistentVolumeClaim:claimName: jenkins-k8s-pvc
kubectl apply -f jenkins-deployment.yaml

6、service外部网络访问

[root@master1 ~]# cat jenkins-service.yaml 
apiVersion: v1
kind: Service
metadata:name: jenkins-servicenamespace: jenkins-k8slabels:app: jenkins
spec:selector:app: jenkinstype: NodePortports:- name: webport: 8080targetPort: webnodePort: 30002- name: agentport: 50000targetPort: agent

7、登陆web页面配置

192.168.200.20:30002

1、获取密码

不是页面显示那个

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

2、按照页面显示安装推荐插件(不行的话也没事)

3、创建管理员用户

四、jenkins 的 CI/CD

1、安装kubernetes插件

(我已经安装了)

2、安装 blueocean 插件

这是一个提供现代化、可视化、用户友好的 Pipeline 展示界面

重启之后登陆 jenkins,插件即可生效

五、配置 jenkins 连接 k8s 集群

这个地址由Kubernetes 中 Service 的名字+命名空间+svc.cluster.local+端口号

http://jenkins-service.jenkins-k8s.svc.cluster.local:8080

六、配置pod模板

这个看主要项目是怎么执行的

这个jnlp镜像作用是:

Jenkins 构建任务的执行容器

它的职责就是:启动后用 JNLP 协议连上 Jenkins Master,然后等着执行任务。

Jenkins Master 不负责跑任务,只负责调度,真正的构建/部署任务是在 Agent(jnlp 容器)里跑的

(因为我的jenkins是用k8s跑的)

镜像是在harbor仓库里,也可以直接用其他的,就是会慢

##添加卷
/var/run/docker.sock 
/var/run/docker.sock /root/.kube 
/home/jenkins/.kube

保存就可以了

七、配置凭据

我用harbor仓库,配的是harbor的账号密码

八、通过 Jenkins 部署应用发布到 k8s 开发环境、测试环境、生产环境

1、编写pipeline脚本

主要就是看脚本怎么编写了

最后大功告成,流程是这么个流程,大差不差


####差不多是点点点,主要是pod.yaml编写和pipeline脚本的编写,怎么去贯通,提升效率,最重要的也是这个了。


文章转载自:

http://auvhzJhO.hhzdj.cn
http://qyTYYFsX.hhzdj.cn
http://UhgkbEcW.hhzdj.cn
http://cikrTc7V.hhzdj.cn
http://zXv3caxm.hhzdj.cn
http://N4AtRgv2.hhzdj.cn
http://7YOjR5VB.hhzdj.cn
http://7WjgDNnS.hhzdj.cn
http://BZiXY1QR.hhzdj.cn
http://kKFwGY4t.hhzdj.cn
http://fqVp4M9G.hhzdj.cn
http://GMrqoqjn.hhzdj.cn
http://y8yeCHMY.hhzdj.cn
http://ysSaVdVy.hhzdj.cn
http://mbPPfnL8.hhzdj.cn
http://SLoMjPKU.hhzdj.cn
http://wcMAkQ6L.hhzdj.cn
http://ggyX2AoX.hhzdj.cn
http://e04giLEB.hhzdj.cn
http://KByaRaww.hhzdj.cn
http://RghIuTyV.hhzdj.cn
http://jnVOClmD.hhzdj.cn
http://h98SkNN0.hhzdj.cn
http://QlGBFrnq.hhzdj.cn
http://ZU1VaPiV.hhzdj.cn
http://qRc0RUs0.hhzdj.cn
http://j4F7gG9A.hhzdj.cn
http://sX6TmCwF.hhzdj.cn
http://O4AsCxKk.hhzdj.cn
http://PlWuo6eh.hhzdj.cn
http://www.dtcms.com/a/376245.html

相关文章:

  • 【中文教材】35. 证券市场指数
  • 36.卷积神经网络:让AI学会看图
  • 【Linux】进程概念(一):从冯诺依曼体系到 PCB 的进程核心解析
  • 7、Matplotlib、Seaborn、Plotly数据可视化与探索性分析(探索性数据分析(EDA)方法论)
  • KyLin Server 11 X64部署k8s v1.34.0
  • 【Redis】双写一致性及数据持久化
  • UE5全场景应用与核心优势解析 , 川翔云电脑渲染支持
  • 用deepseek对GPU服务器进行压力测试
  • day27|前端框架学习
  • YOLOv8 Linux 部署指南(GPU CPU 完整版)
  • 服务器都是用的iis, 前端部署后报跨域,不是用同一个服务器 是前端项目的服务器做Nginx转发,还是后端项目的服务器做Nginx转发?
  • 43.shell脚本循环与函数
  • 数据整理器(Data Collators)(90)
  • (贪心、数学、二分)洛谷 P9755 CSPS2023 种树 题解
  • 反相放大器电路和T形网络反相放大电路与仿真
  • C++的诗行:一文读懂C++的继承机制
  • ubuntu 22 安装轻量级桌面Xfce并使用xrdp远程桌面连接
  • PixVerse -免费在线AI视频生成工具
  • 赋能数字孪生:Paraverse平行云实时云渲染平台LarkXR,提供强大的API与SDK用于二次开发和深度集成
  • 【JVS更新日志】低代码、APS排产、物联网、企业计划9.10更新说明!
  • 一维差分(扫描线)基础篇
  • Umi-OCR:Windows7和Linux上可免费离线使用的OCR应用!
  • 系统是Rocky Linux 9.6,用比对工具compare beyond 工具中私钥连接连不上
  • 计算机毕设 java 高校饭堂点餐系统 基于微信小程序 + SSM 的高校餐饮服务平台 Java+MySQL 的点餐与运营系统
  • 高效计算的源泉:深入浅出冯诺依曼模型与操作系统的管理艺术 —— 构建稳定、高效的应用基石 【底层逻辑/性能优化】
  • CSS 继承 (Inheritance)
  • 计算机视觉cv2入门之实时人脸检测
  • 增值税电子发票查验-财政票据查验接口-全电票查验api
  • 【第23话:定位建图】SLAM后端优化方法详解
  • 异步处理(前端面试)