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


感谢阅读,祝君暴富!

相关推荐
毕设源码-赖学姐17 分钟前
【开题答辩全过程】以 非凡物流公司电商物流管理系统的设计与实现为例,包含答辩的问题和答案
java·eclipse
菠菠萝宝1 小时前
【Java手搓RAGFlow】-3- 用户认证与权限管理
java·开发语言·人工智能·llm·openai·qwen·rag
print(未来)3 小时前
C++ 与 C# 的性能比较:选择合适的语言进行高效开发
java·开发语言
一晌小贪欢4 小时前
Pandas操作Excel使用手册大全:从基础到精通
开发语言·python·自动化·excel·pandas·办公自动化·python办公
王者之座5 小时前
java+maven配置yguard的一次实验
java·spring boot·maven
q***61507 小时前
eclipse配置Spring
java·spring·eclipse
Miraitowa_cheems7 小时前
LeetCode算法日记 - Day 106: 两个字符串的最小ASCII删除和
java·数据结构·算法·leetcode·深度优先
q***58197 小时前
Spring全家桶简介
java·后端·spring
武昌库里写JAVA7 小时前
微擎服务器配置要求,微擎云主机多少钱一年?
java·vue.js·spring boot·后端·sql