本文演示如何将 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 的目录
在 .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
|
查看部署效果
或者