Springboot是专门用户构建独立且可执行的Spring应用程序的框架,主要为了简化传统Java EE开发的过程。将Springboot应用程序部署到Kubernetes中可以提供更好的应用程序部署和管理体验,开发者可以轻松构建出高度可伸缩和可靠的微服务架构。接下来将主要介绍如何利用Kubernetes部署Springboot项目。
一、Kubernetes部署部署WordPress+mysql
WordPress是用于快速搭建博客系统。
1、创建wordpress命名空间
# 创建namespace
kubectl create namespace wordpress
# 查看namespace列表
kubectl get ns
2、创建mysql数据库
以下yaml文件创建一个mysql,并且生成一个service,service对外暴露的端口是3306。
3、创建WordPress应用
搭建成功后用浏览器访问192.168.56.101:30493,发现访问成功!
总之,在集群中,pod之间可以通过service 的name进行访问,不仅仅是ip,这就意味着,service中不仅帮我们做了负载均衡,而且做了dns处理。
二、部署自己Springboot项目
1、准备Springboot项目
访问:http://localhost:8080/k8s,先试用maven打成一个jar包:
注意!这一步通常来说使用jenkins完成,此处我们是手动完成的。
2、使用docker打成镜像
(1)编写Dockerfile:
FROM openjdk:8-jre-alpine
COPY springboot-demo-0.0.1-SNAPSHOT.jar /springboot-demo.jar
ENTRYPOINT [“java”,”-jar”,”/springboot-demo.jar”]
# 根据Dockerfile创建image:docker build -t springboot-demo-image .
# 查看是否成功打成了镜像:docker images
(2)将镜像推送至dockerhub
# 登录阿里云镜像仓库 # 需要输入密码
docker login –username=******* registry.cn-hangzhou.aliyuncs.com
docker tag springboot-demo-image registry.cn-hangzhou.aliyuncs.com/cxf01/springboot-demo-image:v1.0
docker push registry.cn-hangzhou.aliyuncs.com/cxf01/springboot-demo-image:v1.0
(3)运行测试
# 运行:docker run -d –name s1 springboot-demo-image # 未做端口映射
# 访问:docker inspect s1
curl 172.17.0.2:8080/k8s # 未做端口映射,只能访问容器ip
3、使用k8s部署springboot
三、通过Kubernetes部署springcloud项目
1、部署nacos
(1)下载部署nacos server1.0.0
github:https://github.com/alibaba/nacos/releases
- 上传nacos-server-1.0.0.tar.gz到阿里云服务器:/usr/local/nacos
- 解压:tar -zxvf
- 进入到bin目录执行:sh startup.sh -m standalone [需要有java环境的支持]
- 浏览器访问:192.168.56.100:8848/nacos
- 用户名和密码:nacos
2、微服务注册到nacos的地址问题
我们有微服务user、order,在pod注册到nacos上的地址,默认是pod的内部地址。
如果在同一个k8s集群下,这样部署是没问题的,但是不同k8s集群下,微服务之间就互相不可访问了。
使用host模式:
如上,加上hostNetwork: true,就会在nacos上注册的ip端口,会映射成宿主机的ip和端口。










