k8s部署springboot

news/2025/1/15 22:39:17/

前言

在这里插入图片描述

首先以SpringBoot应用为例介绍一下k8s的部署步骤。

1.从代码仓库下载代码,比如GitLab;
2.接着是进行打包,比如使用Maven;
3.编写Dockerfile文件,把步骤2产生的包制作成镜像;
4.上传步骤3的镜像到远程仓库,比如Harhor;
5.编写Deployment文件;
6.提交Deployment文件到k8s集群;

从以上步骤可以看出,发布需要的工具和环境至少包括:代码仓库(GitLab)、打包环境(Maven)、镜像制作(Docker)、镜像仓库(Harbor)、k8s集群等。
当前,也可以借助一些开源的系统来发布你的应用,比如:Jenkins、https://gitee.com/i512team/dhorse等。

详细步骤

假如有一个名为Hello的SpringBoot应用,服务端口是8080,并且有一个/hello接口。

打包

这里直接从GitLab下载到本地,执行maven打包命令,这里打为Jar包:

mvn clean package

完成以后,生成的包为:hello-1.0.0.jar

制作镜像

以下步骤在具有Docker环境的Linux机器上操作。

  1. 把hello-1.0.0.jar放到/usr/local/hello目录下,并在该目录下创建Dockerfile文件,内容为:
FROM openjdk:8-jdk-alpine
ADD hello-1.0.0.jar /usr/local/hello.jar
ENTRYPOINT ["java", "-jar", "/usr/local/hello.jar"]

则/usr/local/hello目录的文件为:

-rw-r--r-- 1 root root      119 Feb 22 17:50 Dockerfile
-rw-r--r-- 1 root root 21863457 Feb 22 17:07 hello-1.0.0.jar
  1. 制作镜像,在/usr/local/hello目录下执行命令:
docker build -t 192.168.109.134:20080/dhorse/hello:1.0.0 .

其中,192.168.109.134:20080是Harbor镜像仓库地址,dhorse是项目名。

  1. 登录仓库并上传镜像
docker login 192.168.109.134:20080 -u admin -p Harbor12345
docker push 192.168.109.134:20080/dhorse/hello:1.0.0

编写Deployment文件

创建hello-k8s.yml文件,内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:name: hellolabels:app: hello
spec:replicas: 1selector:matchLabels:app: hellotemplate:metadata:labels:app: hellospec:containers:- name: helloimage: 192.168.109.134:20080/dhorse/hello:1.0.0imagePullPolicy: Always

部署应用

以下操作在k8s集群的mater机器上执行。

把hello-k8s.yml文件复制/user/local目录下,并在当前目录执行如下命令:

kubectl apply -f hello-k8s.yml

稍后,再执行如下命令:

kubectl get pods -o wide

输出结果如下:

NAME                     READY   STATUS    RESTARTS   AGE   IP            NODE       NOMINATED NODE   READINESS GATES
hello-79d56dc985-7dz6q   1/1     Running   0          8s    10.32.1.180   centos06   <none>           <none>

然后在访问/hello接口:

curl http://10.32.1.180:8080/hello

推荐一个不错的部署应用的工具,https://gitee.com/i512team/dhorse

至此,发布结束。


http://www.ppmy.cn/news/788956.html

相关文章

红灯三秒亮一次,绿灯一秒亮一次,黄灯2秒亮一次;如何让三个灯不断交替重复亮灯?

代码如下所示&#xff1a; const onRedLight () > {console.log("red"); };const onGreenLight () > {console.log("green"); };const onYellowLight () > {console.log("yellow"); };const onLightUp (timestamp, callback) >…

语音控制灯的亮灭

1 材料清单 序号名称数量淘宝链接1树莓派 4B 4g 开发板1https://item.taobao.com/item.htm?spma1z09.2.0.0.70b12e8dv8xy86&id601946840416&_us2km3ff40442ESP8266串口wifi模块 NodeMcu1https://item.taobao.com/item.htm?spma1z09.2.0.0.6eb72e8dMsnTbT&id5332…

Linux常用的关机、开机命令详解

哈喽&#xff0c;欢迎来到小朱课堂&#xff0c;下面开始你的学习吧&#xff01; Linux 关机 linux关机命令是什么 Liux是一套免费使用和自由传播的类Uix操作系统&#xff0c;是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。那么linux关机命令是什么?…

mx250可以机器学习吗_新一代全能轻薄本标配 MX250究竟有多强?

在广大PC玩家们的心中&#xff0c;笔记本的中低端显卡一直以来都是被看不起的鸡肋&#xff0c;甚至在玩家圈子里还有“请拔掉独显以提高显示性能”、“亮机卡”等说法&#xff0c;过去中低端显卡的性能表现着实无法让大家认可&#xff0c;尤其是在CPU自带核芯显卡的情况下它们的…

linux网卡不兼容pci,LINUX网卡和PCI设备命名的坑,不插显卡启动PVE虚拟机系统!...

这段时间在研究桌面迷你服务器,之前介绍过有一个问题就是用的CPU为至强E3 1231 V3,本身不带核显,亮机卡机箱太小,插不进去,这就导致一旦进不了系统,一切故障只能靠盲猜。下面我把最近遇到的一些坑描述总结一下。 机器宿主系统装的是Proxmox VE,该系统是基于Debian的。第…

chrome下旧显卡开启WebGL

chrome下旧显卡开启WebGL 背景 我使用的电脑的显卡是R5 230显卡&#xff0c;是一款比较旧的亮机卡。chrome版本为&#xff1a;版本 89.0.4389.90(正式版本) (64 位) 打开某些网页的时候提示&#xff1a;The browser supports WebGL, but initialization failed. 但是在WebGL测试…

使用vscode对ros进行调试

测试版本 Ubuntu18.04 ros-melodic 使用的是x86机器&#xff0c;i7-8700亮机卡 0.运行roscore 安装了ros扩展后&#xff0c;可以在vscode运行roscore&#xff08;不用单开一个终端碍眼了&#xff09; 运行成功后&#xff0c;会在左下角有个 √ 作为提示信息 1.在vscode左侧…

P106双N卡 自动调用方案

用N卡亮机上P106又怀疑能否完美调用的&#xff0c;直接去NVIDIA官网查看亮机卡的最新驱动&#xff0c;支持4xx及以上的都能自动调用&#xff0c;最高391的只能强制调用&#xff0c;最高342的目前无法同时驱动P106&#xff0c;也就谈不上调用。 具体情况看表格&#xff1a; NV亮…