K8S自动化部署Java项目的实现流程(Gitlab推送镜像到Harbor,K8S拉取Harbor中的镜像进行部署)

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • [1. 流程对比](#1. 流程对比)
    • [1.1 最基础的k8s部署java项目的流程](#1.1 最基础的k8s部署java项目的流程)
    • [1.2 现在使用自动化的流程](#1.2 现在使用自动化的流程)
  • [2. java项目代码](#2. java项目代码)
  • [3. k8s部署gitlab](#3. k8s部署gitlab)
  • [4. k8s部署habor](#4. k8s部署habor)
  • [5. Dockerfile和.gitlab-ci.yml文件配置](#5. Dockerfile和.gitlab-ci.yml文件配置)
  • [6. Java项目推送到gitlab](#6. Java项目推送到gitlab)
  • [7. 配置部署所需的yaml文件](#7. 配置部署所需的yaml文件)
  • [8. 部署项目](#8. 部署项目)

更为详细的k8s部署java项目流程说明请参考文章链接:K8S部署Java项目(Gitlab CI/CD自动化部署终极版)

1. 流程对比

1.1 最基础的k8s部署java项目的流程

  • 将java代码打包成jar包
  • 然后将jar包上传到服务器中
  • 在安装docker的系统中通过Dockerfile文件将jar包创建成镜像
  • 然后根据镜像在k8s中使用deployment的yaml文件配置方式运行成服务

1.2 现在使用自动化的流程

  • 将java代码上传到gitlab上
  • 然后通过gitlab打jar包、打镜像
  • 上传到habor仓库
  • 再到k8s中使用deployment的yaml方式配置(拉取镜像)运行成服务

2. java项目代码

可通过如下链接获取我的项目demo:K8S中部署Java SpringBoot项目源码

当然也可以自己创建一个简单的springboot项目,包含一个请求的函数即可,以便后续访问服务的该接口测试服务的可用性
SpringBoot的搭建(两种方式)

3. k8s部署gitlab

如未部署gitlab可参考链接部署gitlab:K8S部署GitLab(详细完整版)

4. k8s部署habor

如未部署harbor镜像仓库可参考链接部署harbor:K8S部署Harbor镜像仓库(含离线安装包harbor-offline-installer国内下载链接)

注意,这里需要提前在harbor仓库中创建项目文件夹用于存储后续构建的镜像,且需要再构建镜像的命令中指定此镜像仓库项目文件夹地址,具体请到下一步的脚本文件中参考命令进行修改

5. Dockerfile和.gitlab-ci.yml文件配置

这两个文件需要放在项目的根目录下,也就是与pom所在的位置一致

参考文章配置:Dockerfile和.gitlab-ci.yml文件模板

6. Java项目推送到gitlab

参考文章使用git命令将项目推送到gitlab仓库中:通过GIT将本地项目上传到gitee

推送后会自动触发执行.gitlab-ci.yml脚本中的命令,最后可在harbor镜像仓库中看到推送上来的镜像

7. 配置部署所需的yaml文件

根据自己的项目参考文章进行编辑yaml文件内容:K8S部署Java项目的yaml配置文件模板

8. 部署项目

参考文章部署yaml文件:K8S中部署yaml文件(如Java项目)


感谢阅读,祝君暴富!

相关推荐
Pota-to成长日记8 分钟前
代码解析:基于时间轴(Timeline)的博客分页查询功能
java
塔能物联运维30 分钟前
物联网设备运维中的自动化合规性检查与策略执行机制
java·运维·物联网·struts·自动化
不爱编程的小九九31 分钟前
小九源码-springboot099-基于Springboot的本科实践教学管理系统
java·spring boot·后端
雨夜之寂39 分钟前
第一章-第二节-Cursor IDE与MCP集成.md
java·后端·架构
即将头秃的程序媛1 小时前
Sa-Token
java
大G的笔记本1 小时前
Spring IOC和AOP
java·后端·spring
武子康1 小时前
Java-155 MongoDB Spring Boot 连接实战 | Template vs Repository(含索引与常见坑)
java·数据库·spring boot·后端·mongodb·系统架构·nosql
武子康1 小时前
Java-157 MongoDB 存储引擎 WiredTiger vs InMemory:何时用、怎么配、如何验证 mongod.conf
java·数据库·sql·mongodb·性能优化·系统架构·nosql
br456vv1 小时前
Adobe Dimension 2025 (3D可视化设计神器) 解锁版
java·adobe·工具