在 k8s 集群中发布 SpringBoot 应用

本文演示如何将 SpringBoot 应用发布到 K8s 集群中。

环境准备

本文使用的进行仓库为使用 Docker Registry 搭建的使用镜像仓库,搭建方法详见 K8s使用 Docker Registry 作为镜像库

如果环境中还没有安装 jdk, 则执行

1
sudo apt-get install openjdk-8-jdk

如果环境中还没有安装 maven, 则执行

1
sudo apt-get install mvn

为提高构建速度,配置使用国内maven 仓库

在用户目录建立名为 .m2 的目录

1
mkdir ~/.m2

在 .m2 中新建名为 settings.xml 的文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

<pluginGroups>
</pluginGroups>

<proxies>
</proxies>

<servers>
</servers>

<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>

</settings>

构建镜像并push到仓库

1
mvn clean package docker:build

tag

1
docker tag todo-srv:0.0.1 192.168.0.135:5000/todo-srv:0.0.1

登陆私有仓库

1
docker login 192.168.0.135:5000

根据提示输入用户名和密码

上传镜像

1
docker push 192.168.0.135:5000/todo-srv:0.0.1

发布到 K8s 集群中

在 k8s 集群的 master 机器上,准备分发文件: todo-srv-deploy.yaml

内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
apiVersion: v1
kind: Service
metadata:
name: todo-srv-deployment
namespace: default
labels:
app: todo-srv-deployment
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30090
selector:
app: todo-srv-deployment
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: todo-srv-deployment
labels:
app: todo-srv-deployment
spec:
replicas: 1
selector:
matchLabels:
app: todo-srv-deployment
template:
metadata:
labels:
app: todo-srv-deployment
spec:
imagePullSecrets:
- name: my-registry-secret
containers:
- name: todo-srv-deployment
image: 192.168.0.135:5000/todo-srv:0.0.1

保存以后执行

1
kubectl apply -f todo-srv-deploy.yaml

查看部署效果

1
kubectl get pod -o wide

或者

1
kubectl get svc -o wide

本文标题:在 k8s 集群中发布 SpringBoot 应用

文章作者:Morning Star

发布时间:2021年08月27日 - 22:08

最后更新:2022年01月03日 - 11:01

原始链接:https://www.mls-tech.info/microservice/k8s/k8s-deploy-springboot-app/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。