Jenkins流水线整合k8s实现代码自动集成和部署
一、前置条件
1、安装好k8s集群
这里先要搭建好一个K8s集群,笔者这边就采用使用了一个一主一丛的k8s集群,k8s集群的版本使用1.19.5版本,服务器的配置:2核4G,操作系统: CentOS Linux release 7.9.2009 (Core)
| 主机名 | ip |
| k8smaster | 192.168.19.8 |
| k8sworker | 192.168.19.9 |
具体的安装步骤可以按照文档来进行:使用kubeadm安装kubernetes_v1.19.x | Kuboard

2、安装好 Kuboard来管理k8s集群
安装完成后,安装 Kuboard v3 - kubernetes,按照指令:
kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
# 您也可以使用下面的指令,唯一的区别是,该指令使用华为云的镜像仓库替代 docker hub 分发 Kuboard 所需要的镜像
# kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml
Kuboard 安装完成后,
-
在浏览器中打开链接
http://192.168.19.8:30080 -
输入初始用户名和密码,并登录
- 用户名:
admin - 密码:
Kuboard123
- 用户名:

3、安装好 IngressClass来进行服务暴露
在集群的IngressClass管理中安装ingressController

4、创建test命名空间
后续我们通过jenkinszhong 部署的服务放在这个命名空间中,在k8s集群的master节点上执行如下指令:
[root@localhost ~]# kubectl create ns test
namespace/test created
[root@localhost ~]# kubectl get ns
NAME STATUS AGE
default Active 13h
ingress-nginx Active 30m
kube-node-lease Active 13h
kube-public Active 13h
kube-system Active 13h
kuboard Active 13h
test Active 2m20s
5、在Kuboard 配置好docker私服的相关配置信息


6、在k8s的master和worker节点上配置docker的私服地址
在/etc/docker/daemon.json文件中添加

然后重启docker服务,master和worker都需要执行
systemctl restart docker
测试docker能否进行登录,执行如下命名:
docker login 192.168.19.7:80 -u admin -p Harbor12345
发现是能够正常登录的
二、在项目代码中添加k8s的部署文件
1、在项目代码的docker文件夹中添加,pipe-line.yml文件
文件内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:namespace: testname: pipelinelabels:app: pipeline
spec:replicas: 2selector:matchLabels:app: pipelinetemplate:metadata:labels:app: pipelinespec:imagePullSecrets:- name: harborcontainers:- name: pipelineimage: 192.168.19.7:80/repo/mytest:v1.0.10imagePullPolicy: Alwaysports:- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:namespace: testlabels:app: pipelinename: pipeline
spec:selector:app: pipelineports:- port: 8081targetPort: 8080type: NodePort
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:namespace: testname: pipeline
spec:ingressClassName: ingressrules:- host: zhang.pipeline.comhttp:paths:- path: /pathType: Prefixbackend:service:name: pipelineport:number: 8081
2、添加域名解析
在window的hosts文件中添加如下域名解析:
C:\Windows\System32\drivers\etc\hosts文件
192.168.19.8 zhang.pipeline.com
3、配置jenkins流水线
3-1、现在k8smaster的/usr/local/目录下创建k8smaster目录

3.2、在jenkins上新增一个publish over ssh

3.3、在项目的任务中添加一个文件传输任务,并执行pod的部署及滚动更新
sshPublisher(publishers: [sshPublisherDesc(configName: 'k8smaster', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''kubectl apply -f /usr/local/k8smaster/docker/pipe-line.yml
kubectl rollout restart deployment pipeline -n test''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'docker/pipe-line.yml')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
4、测试部署后的流水线构建情况

可以看到已经执行成功,至此我们完成了基于jenkins并集成k8s集群进行CICD的流水线建设
相关文章:
Jenkins流水线整合k8s实现代码自动集成和部署
一、前置条件 1、安装好k8s集群 这里先要搭建好一个K8s集群,笔者这边就采用使用了一个一主一丛的k8s集群,k8s集群的版本使用1.19.5版本,服务器的配置:2核4G,操作系统: CentOS Linux release 7.9.2009 (Core) 主机名…...
@PulsarConsumer注解2
PulsarConsumer注解是 Apache Pulsar 的客户端 API 中的注解之一,它是用于自动消费 Pulsar 消息的。通过使用PulsarConsumer注解,您可以将 Pulsar 消息的消费逻辑与自身的 bean 结合起来,并且不必编写繁琐的消费者代码。当消息到达 topic 时&…...
AIGC 综述 2023:A History of Generative AI from GAN to ChatGPT
GAI:发展历史,核心技术,应用领域以及未来发展 摘要1、引言1.1、主要贡献1.2、组织结构 2、生成式AI的发展历史2.1、NLP领域的发展2.2、CV领域的发展2.3、CV与NLP的融合 3、AIGC的核心技术基础3.1、经典基础模型3.1.1、Transformer3.1.2、Pre-…...
【JOSEF约瑟 JDZS-1202B 可调断电延时中间继电器 精度高、延时宽、】
品牌:JOSEF约瑟名称:可调断电延时中间继电器型号:JDZS-1202B系列额定电压:110、220VDC/AC触点容量:250V/5A功率消耗:2W返回系数:≥5%特点:高精度、延时宽、功耗低。 用途及特点 基本…...
UNeXt:基于MLP的快速医学图像分割网络
文章目录 UNeXt: MLP-Based Rapid Medical Image Segmentation Network摘要本文方法Shifted MLPTokenized MLP Stage 实验结果 UNeXt: MLP-Based Rapid Medical Image Segmentation Network 摘要 UNeXt:一种基于卷积多层感知器(MLP)的图像分…...
软路由简述
软路由是一种基于软件实现的路由器,它可以在普通的计算机上运行,通过软件实现路由器的各种功能。相比传统的硬件路由器,软路由具有灵活性高、可定制性强、成本低等优点,因此在近年来得到了越来越广泛的应用。 软路由的实现方式有…...
python 生成设施农用地各类材料,并调用python2进行出图
python 生成设施农用地各类材料,并调用python2进行出图 -- coding: utf-8 -- import win32com.client from win32com.client import Dispatch import os, sys, glob #import traceback, shapefile from openpyxl import load_workbook, Workbook import openpyxl,…...
html - 多媒体标签(video)、音频标签(audio)
video 语法: <video src"文件地址" controls"controls" </video> 常见的属性 属性 值 描 述 autoplay autoplay 视频就绪自动播放(谷歌浏览器需要添加muted来解决自动放的问题 controls controls …...
希望计算机专业同学都知道这些博主
湖科大教书匠——计算机网络 “宝藏老师”、“干货满满”、“羡慕湖科大”…这些都是网友对这门网课的评价,可见网课质量之高!最全面的面试网站 湖南科技大学《计算机网络》微课堂是该校高军老师精心制作的视频课程,用简单的语言描述复杂的…...
LeetCode 416 分割等和子集
题目: 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入:nums [1,5,11,5] 输出:true 解释:数组可以分割成 [1, 5, 5] 和 …...
韦东山Linux驱动入门实验班(2)hello驱动---驱动层与应用层通讯,以及自动产生设备节点
前言 (1)学习韦东山老师的Linux,因为他讲的很精简,以至于很多人听不懂。接下来我讲介绍韦东山老师的驱动实验班的第二个Hello程序。 (2)注意,请先学习完视频再来看这个教程!本文仅供…...
小程序技术,打开跨端管理的思路,提高客户满意度和忠诚度
小程序容器作为跨端管理的有效工具,已经成为越来越多企业的选择。通过小程序容器,企业可以实现跨平台部署,提供一致的用户体验,整合多种渠道实现全渠道协同,进行个性化营销,以及通过数据分析和监控等手段优…...
Jmeter的Content-Type设置方式
今天调Jmeter脚本遇到一个问题:接口的请求体为Body Data时,没有在HTTP信息头管理加Content-Type参数,Content-Type: application/json,导致脚本一直跑不通,报错,一顿排查,才发现是请求头的原因。…...
SQL语法
创建基本表 创建基本表要对表进行命名,定义表的每个列,定义表的完整性约束条件,我们使用CREATE TABLE语句创建基本表 CREATE TABLE <表名> (<列名> <数据类型> [DEEAULT<缺省值>] [列级约束定义], <列名> &l…...
面试题30天打卡-day30
1、如何在 Linux 中查看系统资源使用情况?比如内存、CPU、网络端口。 以下是Linux中一些常用的命令来查看系统资源使用情况: top:实时动态地显示系统的 CPU 使用情况、进程信息、内存占用情况等。可以使用 q 键退出。top命令可以实时显示各…...
learn_C_deep_11 (深刻理解整形提升、左移和右移规则、花括号、++和--操作、表达式匹配:贪心算法)
目录 深刻理解整形提升 左移和右移规则 如何理解"丢弃" 一个问题 0x01<<23 的值是多少 花括号 、--操作 表达式匹配:贪心算法 深刻理解整形提升 #include <stdio.h> int main() {char c 0;printf("sizeof(c): %d\n", sizeo…...
十个高质量工具网站推荐,AI自动抠图换背景,任意背景自动融合
AI 背景更换是一种利用生成式人工智能创建新图像背景的软件工具。与传统方法需要移除原有的背景并更换新的不同,AI背景生成器使用先进的算法生成与前景完美融合的全新背景。这项技术彻底改变了图像编辑的方式,为设计提供了更多的创造自由和灵活性。 特点…...
小红的好数组陡峭值之和
题目如下 这个题我一开始是先生成满足0,1,2的全排列,但是n很大时很快就超出内存限制了,后来想到用动态规划的方法做,这里先分析一下。 n2时,有01,02,10,12,2…...
MySQL中存储具有不定列的数据-EAV模型
当需要在MySQL中存储具有不定列的数据时,一种常见的解决方案是使用EAV(Entity-Attribute-Value)模型。EAV模型允许灵活地存储不同实体的不同属性,适用于属性数量不确定的情况。本文将介绍如何使用Java和MySQL来实现EAV模型的存储和…...
COM接口规则的存在是有原因的
可能有些人认为接口上的 COM 接口规则没有必要设计的那么严格,但我想说的是,这些规则的存在是有原因的。 假设你在你的产品代码中新增加了版本号为 N 的接口,由于这个接口是内部使用的,没有任何公开文档。所以你可以随意修改它&a…...
Battery Toolkit:Apple Silicon Mac 电池健康管理的终极解决方案
Battery Toolkit:Apple Silicon Mac 电池健康管理的终极解决方案 【免费下载链接】Battery-Toolkit Control the platform power state of your Apple Silicon Mac. 项目地址: https://gitcode.com/gh_mirrors/ba/Battery-Toolkit 你是否经常担心 MacBook 电…...
网盘直链下载助手:技术解析与多平台部署方案
网盘直链下载助手:技术解析与多平台部署方案 【免费下载链接】baiduyun 油猴脚本 - 一个免费开源的网盘下载助手 项目地址: https://gitcode.com/gh_mirrors/ba/baiduyun 在云存储服务成为数字工作流核心组件的今天,网盘下载速度限制已成为影响工…...
卡证检测矫正模型边防应用:边境地区居民证件图像离线矫正方案
卡证检测矫正模型边防应用:边境地区居民证件图像离线矫正方案 边境地区的日常工作中,处理居民身份证、护照、驾照等证件是高频且关键的业务。无论是边民登记、通关查验还是日常管理,工作人员常常需要手动拍摄或接收大量角度各异、光线不一的…...
RS485通信中波特率不匹配导致数据错误?STM32 USART模块的隐藏陷阱
RS485通信中波特率不匹配导致数据错误?STM32 USART模块的隐藏陷阱 在工业自动化、智能楼宇等场景中,RS485总线因其抗干扰能力强、传输距离远等优势被广泛应用。然而,许多开发者在使用STM32系列MCU的USART模块驱动RS485通信时,都曾…...
lora-scripts详细使用手册:图文并茂,带你完成LoRA训练全流程
LoRA-Scripts详细使用手册:图文并茂,带你完成LoRA训练全流程 1. 工具概述与核心价值 LoRA-Scripts是一款开箱即用的LoRA训练自动化工具,它将复杂的模型微调流程封装为简单易用的命令行操作。无论你是想为Stable Diffusion定制专属艺术风格&…...
4090D显卡专属优化!Guohua Diffusion国风绘画工具部署教程
4090D显卡专属优化!Guohua Diffusion国风绘画工具部署教程 1. 工具简介与核心优势 Guohua Diffusion是一款专为国风绘画设计的本地生成工具,基于原生Guohua-Diffusion模型开发。相比通用绘画工具,它具有以下独特优势: 4090D显卡…...
EhViewer:三招解决漫画阅读的三大痛点,让你的阅读体验提升300%
EhViewer:三招解决漫画阅读的三大痛点,让你的阅读体验提升300% 【免费下载链接】EhViewer 🥥 A fork of EhViewer, feature requests are not accepted. Forked from https://gitlab.com/NekoInverter/EhViewer 项目地址: https://gitcode.…...
现在不掌握MoE,半年后将无法参与主流大模型迭代——2026奇点大会技术白皮书核心结论首发
第一章:MoE架构:大模型演进的奇点分水岭 2026奇点智能技术大会(https://ml-summit.org) 混合专家(Mixture of Experts, MoE)并非新概念,但其在大语言模型中的规模化落地,标志着参数增长范式从“全参激活”…...
笔试训练48天:过河卒
[NOIP2002 普及组] 过河卒_牛客题霸_牛客网https://www.nowcoder.com/practice/cc1a9bc523a24716a117b438a1dc5706?tpId230&tqId40428&ru/exam/oj知识点动态规划 描述 棋盘上 A点有一个过河卒,需要走到目标 B点。卒行走的规则:可以向下、或者…...
大模型×联邦学习如何破局数据孤岛?SITS2026首席科学家首次公开7项关键技术指标与性能基准
第一章:大模型联邦学习破局数据孤岛的战略意义 2026奇点智能技术大会(https://ml-summit.org) 数据孤岛已成为制约人工智能规模化落地的核心瓶颈——医疗、金融、政务等高价值场景中,数据因隐私法规、商业壁垒与系统异构性而高度割裂。大模型虽具备强大…...

