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项目)


感谢阅读,祝君暴富!

相关推荐
雨中飘荡的记忆14 分钟前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌3 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊4 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang4 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构
Ray Liang5 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
Java水解6 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
SimonKing10 小时前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员
FastBean10 小时前
Jackson View Extension Spring Boot Starter
java·后端
Seven9711 小时前
剑指offer-79、最⻓不含重复字符的⼦字符串
java
皮皮林55120 小时前
Java性能调优黑科技!1行代码实现毫秒级耗时追踪,效率飙升300%!
java