基于 CI/CD(Jenkins)将 Spring Boot 应用自动部署到 Kubernetes 集群

基于 CI/CD 平台将应用程序自动部署到 Kubernetes 集群 本文介绍了基于Kubernetes的自动化CI/CD环境配置流程。主要内容包括:1)在多节点配置内网域名解析和Docker国内镜像源加速;2)GitLab仓库初始化与项目文件准备(含Dockerfile、SpringBoot代码、K8s资源配置等);3)Jenkins插件安装与SSH部署配置;4)创建Jenkins流水线项目并执行构建;5)K8s节点验证部署结果。文中特别强调了国内镜像源配置和私有仓库设置,确保构建过程高效稳定。整个流程实现了从代码提交到Kubernetes部署的完整自动化,适合国内网络环境 阅读详情

项目背景

随着微服务架构在企业级应用中的广泛普及,Spring Boot 凭借其 “开箱即用、简化配置” 的特性,成为微服务开发的主流框架;同时,Kubernetes(简称 K8s)作为容器编排领域的标准平台,能高效解决容器化应用的部署、扩缩容、服务发现、故障自愈等问题,二者结合已成为微服务落地的核心技术方案。

然而,传统的 Spring Boot 应用部署模式(如手动打包 Jar 包、上传至服务器、手动配置容器、手动部署到 K8s 集群)存在显著痛点:

  1. 手动操作繁琐且易出错:从代码提交到最终部署需经历 “代码编译→单元测试→打包镜像→推送镜像→K8s 资源配置应用” 等多步操作,手动执行不仅效率低,还易因人为疏忽(如配置写错、镜像版本混淆)导致部署失败;
  2. 环境一致性难以保障:开发、测试、生产环境的依赖版本、配置参数若手动维护,易出现 “开发环境能运行,生产环境报错” 的 “环境不一致” 问题;
  3. 迭代效率低,无法适配快速业务需求:当业务迭代频繁(如每日多次版本更新)时,手动部署周期长(通常需数十分钟甚至数小时),难以满足 “快速验证、快速上线” 的业务需求;
  4. 缺乏流程管控与可追溯性:手动部署无统一的流程记录,若出现部署故障,难以快速定位是 “代码问题”“构建问题” 还是 “部署配置问题”,排查成本高。

为解决上述痛点,需构建一套自动化的 CI/CD(持续集成 / 持续部署)流程,而 Jenkins 作为开源领域最成熟的 CI/CD 工具,具备丰富的插件生态(如 Git 插件、Maven 插件、Docker 插件、Kubernetes 插件),可无缝串联 “代码管理→持续集成→镜像构建→持续部署至 K8s” 的全链路,因此本项目核心目标为:基于 Jenkins 搭建 CI/CD 流水线,实现 Spring Boot 应用从 “代码提交至 Git 仓库” 到 “自动部署至 K8s 集群运行” 的全流程自动化,消除手动操作,保障环境一致性,提升部署效率与稳定性,支撑业务快速迭代。

项目核心技术栈及角色:

  • 代码管理:Git(存储 Spring Boot 应用代码及 K8s 资源配置文件);
  • CI/CD 工具:Jenkins(编排流水线,触发代码拉取、Maven 构建、Docker 镜像打包 / 推送、K8s 资源部署);
  • 应用框架:Spring Boot(微服务应用开发框架,提供业务功能);
  • 容器化工具:Docker(将 Spring Boot 应用打包为标准化镜像,保障环境一致性);
  • 容器编排平台:Kubernetes(管理 Docker 镜像的运行,实现应用的高可用、扩缩容、故障自愈)。

一、环境准备(Host1、Host2 与基础服务)

        1. Host2:安装 Kubernetes(使用轻量版 k3s)

        K3s 是轻量级 Kubernetes 发行版,适合测试环境快速部署。

[root@host2 ~]# curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | \
INSTALL_K3S_MIRROR=cn sh -s - \
--system-default-registry "registry.cn-hangzhou.aliyuncs.com"
[INFO]  Finding release for channel stable
[INFO]  Using v1.33.4+k3s1 as release
[INFO]  Downloading hash rancher-mirror.rancher.cn/k3s/v1.33.4-k3s1/sha256sum-amd64.txt
[INFO]  Downloading binary rancher-mirror.rancher.cn/k3s/v1.33.4-k3s1/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Finding available k3s-selinux versions
[WARN]  Failed to get available versions of k3s-selinux..defaulting to k3s-selinux-1.2-2.el9.noarch.rpm
Rancher K3s Common (stable)                                          582  B/s | 1.5 kB     00:02    
上次元数据过期检查:0:00:01 前,执行于 2025年09月30日 星期二 20时38分05秒。
依赖关系解决。
=====================================================================================================
 软件包               架构            版本                  仓库                                大小
=====================================================================================================
安装:
 k3s-selinux          noarch          1.6-1.el9             rancher-k3s-common-stable           22 k

事务概要
=====================================================================================================
安装  1 软件包

总下载:22 k
安装大小:96 k
下载软件包:
k3s-selinux-1.6-1.el9.noarch.rpm                                      24 kB/s |  22 kB     00:00    
-----------------------------------------------------------------------------------------------------
总计                                                                  24 kB/s |  22 kB     00:00     
Rancher K3s Common (stable)                                          2.6 kB/s | 2.4 kB     00:00    
导入 GPG 公钥 0xE257814A:
 Userid: "Rancher (CI) <ci@rancher.com>"
 指纹: C8CF F216 4551 26E9 B9C9 18BE 925E A29A E257 814A
 来自: https://rpm.rancher.io/public.key
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                      1/1 
  运行脚本: k3s-selinux-1.6-1.el9.noarch                                                         1/1 
  安装    : k3s-selinux-1.6-1.el9.noarch                                                         1/1 
  运行脚本: k3s-selinux-1.6-1.el9.noarch                                                         1/1 
  验证    : k3s-selinux-1.6-1.el9.noarch                                                         1/1 

已安装:
  k3s-selinux-1.6-1.el9.noarch                                                                       

完毕!
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INF
SpringBoot+Vue项目如何用Jenkins Pipeline实现一键自动化部署到K3S集群(含Harbor配置避坑指南) 本文详细介绍了如何利用Jenkins Pipeline实现SpringBoot+Vue项目的一键自动化部署到K3S集群,包括Harbor私有镜像仓库的HTTPS配置避坑指南、多模块并行构建策略以及前端路由History模式适配等核心解决方案。通过实战案例,帮助开发者高效完成云原生环境下的CI/CD流程。 阅读详情

相关推荐

华为OD机试_2025 B卷_模拟消息队列(Python,100分)(附详细解题思路)

时间排序:确保事件处理顺序正确消费者管理:集合操作高效维护状态优先级实现:利用消费者ID自然排序边界处理:正确处理空消费者情况。

测试工程师的成长之路 1120

从零到一:手把手教你用Python+LangChain搭建企业级RAG知识库(附避坑指南)

本文为开发者提供了一份详尽的实战指南,手把手教你使用Python和LangChain框架从零构建企业级RAG知识库。内容涵盖环境搭建、文档处理、向量化检索、提示工程及生产部署等核心环节,并重点分享了文档分割、检索优化等关键避坑经验,旨在帮助读者打造稳定、高效且易于维护的智能知识中枢。

weixin_29058331的博客 398

基于STM32与ESP8266的MQTT协议实现阿里云物联网平台远程LED控制

本文详细介绍了如何利用STM32单片机与ESP8266 Wi-Fi模块,通过MQTT协议连接阿里云物联网平台,实现远程控制LED灯的完整物联网项目。内容涵盖硬件连接、阿里云平台配置、MQTT协议与AT指令解析、STM32代码实战以及数据解析与调试技巧,为嵌入式开发者提供了一个清晰、实用的物联网入门实践指南。

svm4gardener的博客 792

谈谈SAP顾问的几个发展趋势

大家新年好,今天想聊一下对SAP顾问发展趋势的一些个人见解。过去10多年得益于我国的经济发展,外资不断加大在中国的投资和中国企业的发展,SAP顾问行业得到了很大的发展和壮大。那么未来几年SAP顾问的职业发展到底怎么样呢?

syounger的专栏 2514

手把手教你用Wireshark抓包分析Profinet非周期通信(附实战案例)

本文详细解析了PROFINET非周期通信(RTA)的技术原理与实战应用,通过Wireshark抓包分析,揭示从PLC请求到驱动器响应的完整对话过程。涵盖实验环境搭建、关键配置步骤、典型参数访问流程及故障诊断案例,帮助工程师深入理解并优化工业网络通信性能。

Black的专栏 1050

R以及Rstudio超详细安装教程(包括安装过程中出现的问题)

R安装及Rstudio安装,以及安装中出现的问题

2301_76908257的博客 1万+

干法刻蚀工艺进阶:如何通过调节DC自偏压优化刻蚀速率和各向异性

本文深入探讨了干法刻蚀工艺中DC自偏压的精细调控艺术。DC自偏压是影响刻蚀速率和各向异性的关键因素,文章通过实战案例,详细分析了如何通过调节射频功率、频率、腔室压力及气体成分等参数,间接而有效地控制DC自偏压,从而优化高深宽比硅沟槽等复杂结构的刻蚀效果,实现工艺性能的精准提升。

weixin_28308325的博客 334

AI测试:手把手教你用AI做Web自动化测试「喂饭教程」

本文介绍了基于MCP协议和使用 mcp-use + playwright-mcp 构建智能Web自动化测试框架的实践方法。通过整合大语言模型的理解能力与测试工具可靠性,该方案支持用自然语言描述测试流程,自动转换为可执行的测试步骤,提升测试效率,支持复杂场景和多步骤流程,为自动化测试提供了新思路。

blues_C的博客 1283

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 基于 CI/CD 平台将应用程序自动部署到 Kubernetes 集群
下一篇: 2.4 电子杂志订阅表
Lin_Aries_0421
博客等级 码龄3年 271粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值