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

在Kubernetes集群运行Java单体服务Jenkins并实现数据持久化

1.在Kubernetes集群运行Java单体服务Jenkins并实现数据持久化

在k8s集群中基于java命令,通过war包或jar包运行单体服务,
本次以jenkins.war包部署为例,jenkins的数据保存至外部存储(NFS或者PVC),
其他java应用可结合实际需求考虑是否需要将数据保存至外部存储。

1.1.镜像目录文件

.
├── Dockerfile
├── build-command.sh
├── docker-entrypoint.sh
├── jenkins-2.319.2.war
├── jenkins-2.426.3.war
└── jenkins-2.541.1.war1 directory, 6 files

1.2.构建镜像

# bash build-command.sh
即将开始就像构建,请稍等!
3
2
1
[+] Building 418.1s (10/10)=> [internal] load build definition from Dockerfile                                    0.1s
[+] Building 419.6s (10/10) FINISHED=> [internal] load build definition from Dockerfile                                    0.1s=> => transferring dockerfile: 743B                                                    0.1s=> [internal] load metadata for harbor.zhou-kai.com/pub-images/sapmachine:21.0.10-jdk  0.6s=> [auth] pub-images/sapmachine:pull token for harbor.zhou-kai.com                     0.0s=> [internal] load .dockerignore                                                       0.0s=> => transferring context: 2B                                                         0.0s=> [1/4] FROM harbor.zhou-kai.com/pub-images/sapmachine:21.0.10-jdk-ubuntu-24.04@sha2  1.1s=> => resolve harbor.zhou-kai.com/pub-images/sapmachine:21.0.10-jdk-ubuntu-24.04@sha2  0.5s=> [internal] load build context                                                      21.5s=> => transferring context: 96.28MB                                                   21.4s=> [2/4] RUN apt update && apt install git maven -y                                   66.2s=> [3/4] ADD jenkins-2.541.1.war /apps/jenkins/jenkins.war                             2.4s=> [4/4] ADD docker-entrypoint.sh /usr/bin/                                            0.3s=> exporting to docker image format                                                  346.6s=> => exporting layers                                                                54.8s=> => exporting manifest sha256:67c4e5f41c268f1e7d0ee5086a06f0eeec1c293ac3ccffdc4a7e5  0.0s=> => exporting config sha256:d12e80f12118f159556e8c8408320ea7221d3574a2baec23d894aa4  0.0sf => => sending tarball                                                                291.6s
Loaded image: harbor.zhou-kai.com/myserver/jenkins:v2.541.1
即将开始镜像上传,请稍等!
3
2
1
INFO[0000] pushing as a reduced-platform image (application/vnd.docker.distribution.manifest.v2+json, sha256:67c4e5f41c268f1e7d0ee5086a06f0eeec1c293ac3ccffdc4a7e59ff225c36d3)
manifest-sha256:67c4e5f41c268f1e7d0ee5086a06f0eeec1c293ac3ccffdc4a7e59ff225c36d3: done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:52f949ffef456bd9e79b99409eb59d11d1155dbc5269c76d1442ed84cfd32650:    done           |++++++++++++++++++++++++++++++++++++++|
config-sha256:d12e80f12118f159556e8c8408320ea7221d3574a2baec23d894aa408325a36a:   done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:a3629ac5b9f4680dc2032439ff2354e73b06aecc2e68f0035a2d7c001c8b4114:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:231628878931cb2e916a9a678eb219b283e31fcf07667b01271007b0ac0f8193:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:c61640bd1195b51474d9f4ecf1cc528ec1a76c63f53b823d055072a3bfcae0b3:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:950e179158c76ff0cbfde2044f9d9f9cb66401c9ea4a88885f9f9a6053a6ccbc:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:9076c6215f9e7d1dc8e5d2c3a037b983a98bbc3b7ca6a570408372b75aa4f168:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:ad046dfead5dcf7bfc5c7d0ea3a4a092c32914802acfdb3487562e149fe859a8:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:dfe12aee1cd9fa6bb4b0f1669459b402e6e29bb0e00f264d5fcd5780daa055bf:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:31a957acce2ee3aa7ade8e1087e3e74b0b430b71f478fb8b715b3acedf4c5bd8:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:c34bf244863291dad611edb297af9f587148bebae1fe08852087c7d574438c22:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:0e518ba6a2e13cbf08e1f3e5589a269dc04eb25e7fd47454c7b34c1124de7d91:    done           |++++++++++++++++++++++++++++++++++++++|
elapsed: 36.8s                                                                    total:  641.9  (17.4 MiB/s)
镜像上传成功!

1.3.验证镜像

nerdctl run -it --rm -p 8088:8080 harbor.zhou-kai.com/myserver/jenkins:v2.541.1

1.4.创建PV/PVC

需要两个PVC,一个保存jenkins的数据,一个保存.jenkins的数据。
(注意在NFS服务器准备好对应目录)

# cat jenkins-persistentvolume.yaml
---
apiVersion: v1
kind: PersistentVolume
metadata:name: jenkins-datadir-pvnamespace: myserver
spec:capacity:storage: 100GiaccessModes:- ReadWriteOncenfs:server: 172.31.7.109path: /data/k8sdata/myserver/jenkins-data---
apiVersion: v1
kind: PersistentVolume
metadata:name: jenkins-root-datadir-pvnamespace: myserver
spec:capacity:storage: 100GiaccessModes:- ReadWriteOncenfs:server: 172.31.7.109path: /data/k8sdata/myserver/jenkins-root-data
# cat jenkins-persistentvolumeclaim.yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: jenkins-datadir-pvcnamespace: myserver
spec:volumeName: jenkins-datadir-pv#storageClassName: "myserver-nfs-storageclass"storageClassName: ""accessModes:- ReadWriteOnceresources:requests:storage: 80Gi---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: jenkins-root-data-pvcnamespace: myserver
spec:volumeName: jenkins-root-datadir-pv#storageClassName: "myserver-nfs-storageclass"storageClassName: ""accessModes:- ReadWriteOnceresources:requests:storage: 80Gi

1.5.验证PV/PVC

# kubectl -n myserver get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM                                 STORAGECLASS   VOLUMEATTRIBUTESCLASS   REASON   AGE
jenkins-datadir-pv                         100Gi      RWO            Retain           Bound       myserver/jenkins-datadir-pvc                         <unset>                          12m
jenkins-root-datadir-pv                    100Gi      RWO            Retain           Bound       myserver/jenkins-root-data-pvc                       <unset> # kubectl -n myserver get pvc
NAME                         STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
jenkins-datadir-pvc          Bound     jenkins-datadir-pv                         100Gi      RWO                           <unset>                 3m21s
jenkins-root-data-pvc        Bound     jenkins-root-datadir-pv                    100Gi      RWO                           <unset>                 3m21s

1.6.Jenkins YAML文件

# tree
.
├── 1.jenkins-deployment.yaml
├── 2.jenkins-service.yaml
└── pv├── jenkins-persistentvolume.yaml└── jenkins-persistentvolumeclaim.yaml2 directories, 4 files

1.7.运行Jenkins服务

root@master01:/opt/k8s-data/yaml/myserver/jenkins# kubectl apply -f 1.jenkins-deployment.yaml
deployment.apps/myserver-jenkins-deployment created

root@master01:/opt/k8s-data/yaml/myserver/jenkins# kubectl apply -f 2.jenkins-service.yaml
service/myserver-jenkins-service created

1.8.验证pod

# kubectl -n myserver get pod
NAME                                           READY   STATUS    RESTARTS        AGE
dns-debug                                      1/1     Running   52 (3m4s ago)   2d23h
myserver-jenkins-deployment-7ff8dfd7bc-nxcj9   1/1     Running   0               74s

1.8.验证Web访问Jenkins服务

jenkins-verify

http://www.jsqmd.com/news/444037/

相关文章:

  • 必妩韩国皮肤科提醒:光子嫩肤不清楚这些不要跟风做! - 资讯焦点
  • 权威汇总:界面张力仪生产厂家中口碑上乘的佼佼者推荐 - 品牌推荐大师
  • 2026年用户口碑最佳品牌咨询公司推荐:五家机构实战案例与效果实证对比 - 品牌推荐
  • 电池放电仪、电池内阻仪行业优秀企业推荐:2026年选择靠谱、质量好的品牌 - 深度智识库
  • 2026年品牌咨询公司深度测评:基于企业增长实效的三维价值模型全解析 - 品牌推荐
  • 2026年杭州会计师事务所深度测评:基于服务能力与行业适配的五维解析 - 品牌推荐
  • 关于 openworld-js 驱动的 open world zone 的开发想法、思考
  • 2026工业厂房恒温恒湿改造扩建工程 靠谱公司名单与选择要点 - 品牌2026
  • 2026年3月西安工伤/借贷/拆迁/劳动/合同纠纷律师团队哪家好?行业标杆与选型指南 - 2026年企业推荐榜
  • 2026年国内优质配电箱供应商推荐榜 - 资讯焦点
  • Streamlit基础用法
  • 2026年决策、管理与学习系统国际学术会议 (DMLS 2026)
  • 2026年品牌咨询公司权威榜单发布:五大机构战略落地能力深度排位赛 - 品牌推荐
  • 2026年石墨坩埚厂家实力推荐:辉县市伟业石墨制品,单环/高纯石墨坩埚全系适配冶金与新能源产业 - 品牌推荐官
  • 2026年重庆物流厂家推荐榜 靠谱优质 覆盖全场景运输需求 适配家具制造快消等多行业 - 深度智识库
  • 2026电子半导体生物医药厂房环保工程解决方案服务商汇总 - 品牌2026
  • 每日Paper - 2026-03-06
  • 抢占DeepSeek第一推荐位:2026年GEO优化公司盘点推荐 - 资讯焦点
  • 国产半导体材料与设备专场推荐:CSEAC 2026展会攻略 - 品牌2026
  • 猴子音悦电话查询:企业使用正版音乐的参考指引 - 品牌推荐
  • word技巧积累:解决“mathtype公式双击定位引用功能在 word 转 pdf 时失效”的问题
  • 2026年杭州会计师事务所深度测评:基于服务能力与行业适配的五维解析。 - 品牌推荐
  • 猴子音悦电话查询:企业公播音乐选择与合规建议 - 品牌推荐
  • 工程师私藏:EtherCAT转Profinet网关与一体式伺服调试避坑手册
  • 基于StatefulSet控制器的MySQL一主多从
  • 想选集装箱顶板成型液压机源头厂家?市面上口碑好的品牌推荐,冷弯成型机/压瓦机/金属顶板设备/自动化生产线,集装箱顶板生产厂家怎么选 - 品牌推广师
  • 吉时通管道工程公司电话查询:复杂管道修复方案咨询路径 - 品牌推荐
  • 基于StatefulSet控制器的Redis集群
  • 基于STM32的RN7302电能质量芯片SPI控制测试程序
  • 想了解国产设备?这些半导体设备展览会值得参与 - 品牌2026