当前位置: 首页 > news >正文

k8s-部署springboot容器化应用

一些概念:

master节点控制执行命令在Node节点部署容器,从Node->service->deploy->pod->docker容器镜像,pod里边是docker容器,deploy里边是pod

流程:

springboot项目打包、制作jdk镜像、制作spring boot镜像、空运行测试生成yaml文件、k8s命令通过yaml文件部署,当然也可以不生成yaml文件,即直接k8s命令部署spring boot项目镜像

自定义jdk镜像:

1.服务器上传jdk软件安装包+制作jdk的docker file文件

服务器上上传jdk软件安装包,制作dockerfile文件(实际不太清楚,难道直接cat个文件就行了???),感觉这个docker文件中的内容就是在当前服务器下安装jdk的过程

2.把dockerfile文件运行制作成jdk镜像:

docker build -t jdk1.8.0_251.含义:-t相当于起了个jdk1.8.0_251标签名字,.指的是当前目录下

执行完命令后就会如下第2张图docker images查询到jdk镜像,

构建spring boot项目镜像

1.先把spring boot项目打包成jar包或者war包吧放到服务器上,并制作成dockerfile文件

(实际我不知道咋制作的,要重新学一下docker了),可能跟制作jdk镜像一样,也是直接cat个文件吗???dockerfile文件中的内容如下:

要运行spring boot项目需要有jdk,所以要先继承jdk镜像即From jdk镜像名称,在自定义jdk镜像中制作的jdk镜像名称为jdk1.8.0_251,即docker file中的文件内容为From jdk1.8.0_251

2.把dockerfile文件运行制作成spring boot项目镜像:

docker build -t 38-springboot-k8s-1.0.0-jar.含义:.的含义是当前目录,意思是运行当前目录下的dockerfile文件,然后构建成一个叫38-springboot-k8s-1.0.0-jar的spring boot镜像,运行命令之后看如下第3张图查询images镜像出现spring boot项目镜像

空运行测试+部署spring boot项目镜像

1.空运行测试生成yaml文件,下边步骤2可以使用ymal文件部署spring boot镜像:

制造出spring boot的项目镜像之后,剩下的就是跟k8s部署tomcat、nginx容器化一样了,直接执行kubectl create deployment springboot-k8s --image=38-springboot-k8s-1.0.0-jar镜像,即创建一个叫springboot-k8s的控制器,并创建pod,拉取38-springbott-k8s-1.0.0-jar镜像,并让控制器运行Pod。命令后加了--dry run -o yaml即为空运行测试,空运行测试实际没有执行命令,但是会输出执行命令的效果,空运行测试就是--dry-run,-o指的是output输出,-o yaml指的是执行命令后最终输出一个yaml文件,yaml文件内容如下第3、4张图。即springboot项目镜像在k8s运行时可以是以yaml文件的方式提交给k8s的api server去运行。

空运行测试实际没有执行命令,即执行命令后不会创建deploy、pod等,控制器名字不能是以数字开头,要以英文字母开头

执行kubectl create deployment springboot-k8s --image=38-springboot-k8s-1.0.0-jar --dry -o yaml >boot-delpoy.yaml命令:将yaml内容输入到boot-delpoy.yaml文件中

2.通过yaml文件部署或通过命令直接部署spring boot项目容器:

k8s启动运行springboot镜像,可以通过运行上边步骤1输出的ymal文件,即kubectl apply -f bootdeploy.yaml文件,apply应用,-f指的是-file,即应用步骤4输出的boot-deploy.yaml文件,好处是可以改动yaml文件中的启动参数,或者直接通过运行像nginx或者tomcat镜像那样直接运行即kubectl create deployment 控制器名称 --image=spring boot项目镜像名称

通过yaml文件部署:

(1)修改yaml文件k8s拉取镜像策略,把默认从远程中央仓库拉取镜像改成从本地获取(实际生产中还是得确认下改不改吧,视频中说的是因为springboot项目镜像在本地服务器,并没有把镜像放到远程仓库,所以k8s肯定从远程仓库拉取不下来镜像,所以要修改拉取策略,实际生产中不确定,会不会把spring boot镜像也放到远程仓库???)

控制器名字不能是以数字开头,要以英文字母开头

(2)暴露端口,允许浏览器访问部署在k8s的spring boot服务:

k8s中一个master对应多个node,每个Node里边有好多Pod,每个Pod里边有好多docker容器镜像???

用户浏览器访问k8s中的spring-boot项目镜像路径:

浏览器----》nginx+keepalive(nginx只需部署在当前服务器上做个高可用,不需要做容器化)-----》ingress(对k8s中的服务做负载均衡和统一service端口映射)---->k8s中的service-------->k8s中的deploy------>k8s中的pod------->k8s中的docker容器镜像

linux:

springboot项目下dockerfile镜像内容:

linux删除文件命令:

k8s相关命令:

k8s删除service:kubectl delete service service名称(当把应用暴露端口之后就会有service)

k8s删除控制器:kubectl delete deploy 控制器名称,注:删除控制器之后对应pod也会被自动删除

。。。。。。。。。。。。。。。。。。。。。。。人生漫漫。。。。。。。。

http://www.dtcms.com/a/564819.html

相关文章:

  • Adobe Camera Raw 2026 全面解析:AI污点清除、雪景蒙版与变量调整深度评测
  • 网站制作平台能赚钱吗男女做羞羞的事视频网站
  • Intro.js 和 Driver.js
  • 水印攻击中(鲁棒性攻击、表达攻击、解释攻击)的区别,详细解释清楚
  • 14-循环神经网络(RNN):分析RNN在序列数据中的表现和特点
  • 深入浅出 Java 虚拟机之垃圾回收
  • 沧州市东光建设局 网站网站描述是什么
  • 从零开始MySQL-第4章 C[create]R[read]U[update]D[deletet]
  • Java版智慧场馆运营管理系统源码-全链路商品进销存精准管控方案
  • 电商销售数据分析实战:从数据挖掘到业务增长
  • 中文购物网站模板保存的密码变成乱码
  • 【开题答辩实录分享】以《宠物领养微信小程序》为例进行答辩实录分享
  • 【Block总结】MSC,多尺度稀疏交叉注意力网络在遥感场景分类中的应用|即插即用
  • CANN卷积算子深度优化:以ResNet推理为例
  • PINN求解一维亥姆霍兹方程,以声学问题为例,使用L-BFGS优化器,将传统物理建模与现代深度学习相结合,为解决科学计算问题提供了新的范式,MATLAB代码
  • 文件存储服务有哪些?他们优缺点分别是什么?FastDFS、MinIO、Ceph、HDFS、MooseFS、TFS、七牛云、阿里云 OSS
  • 如何一键将 PDF 转为 Word?
  • 20-递归神经网络(Recursive NN):介绍递归神经网络的特点和用途
  • STM32H743-ARM例程36-DNS
  • 搜集素材的网站吉首建设局网站
  • 16、Docker swarm-3
  • A模块 系统与网络安全 第四门课 弹性交换网络-4
  • Jenkins 在构建 Java 项目并操作 Docker 时 CPU 会突然飙高
  • IP冲突排查方法
  • 爱漫画-只做精品的韩漫网站企业首次建设网站方案流程
  • Fiddler配置方法与使用教程:HTTP/HTTPS抓包分析、代理设置与调试技巧详解(开发者实战指南)
  • UML建模工具Enterprise Architect如何通过威胁建模保障系统安全
  • Android + Flutter打包出来的APK体积太大
  • risc-v vector.S解析
  • QT Quick QML项目音乐播放器15----设置全局背景与颜色、播放页面背景切换