项目背景
随着微服务架构在企业级应用中的广泛普及,Spring Boot 凭借其 “开箱即用、简化配置” 的特性,成为微服务开发的主流框架;同时,Kubernetes(简称 K8s)作为容器编排领域的标准平台,能高效解决容器化应用的部署、扩缩容、服务发现、故障自愈等问题,二者结合已成为微服务落地的核心技术方案。
然而,传统的 Spring Boot 应用部署模式(如手动打包 Jar 包、上传至服务器、手动配置容器、手动部署到 K8s 集群)存在显著痛点:
- 手动操作繁琐且易出错:从代码提交到最终部署需经历 “代码编译→单元测试→打包镜像→推送镜像→K8s 资源配置应用” 等多步操作,手动执行不仅效率低,还易因人为疏忽(如配置写错、镜像版本混淆)导致部署失败;
- 环境一致性难以保障:开发、测试、生产环境的依赖版本、配置参数若手动维护,易出现 “开发环境能运行,生产环境报错” 的 “环境不一致” 问题;
- 迭代效率低,无法适配快速业务需求:当业务迭代频繁(如每日多次版本更新)时,手动部署周期长(通常需数十分钟甚至数小时),难以满足 “快速验证、快速上线” 的业务需求;
- 缺乏流程管控与可追溯性:手动部署无统一的流程记录,若出现部署故障,难以快速定位是 “代码问题”“构建问题” 还是 “部署配置问题”,排查成本高。
为解决上述痛点,需构建一套自动化的 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
1120



被折叠的 条评论
为什么被折叠?



