4.2 将springboot项目部署到k8s环境
项目摘要:本项目使用的是基于https://blog.csdn.net/qq_25337221/article/details/106562317的k8s环境。版本如下:docker-19.03.8kubeadm-1.15.1kubectl-1.15.1kubelet-1.15.1harbor 1.8.0项目具体实施:制作镜像第一种制作镜像方式:在ma...
- 项目摘要:
本项目使用的是基于https://blog.csdn.net/qq_25337221/article/details/106562317的k8s环境。版本如下:
docker-19.03.8 | kubeadm-1.15.1 |
kubectl-1.15.1 | kubelet-1.15.1 |
harbor 1.8.0 |
|
- 项目具体实施:
- 制作镜像
- 第一种制作镜像方式:在maven中引入插件,使用maven制作。这种外网不能访问的话很不好处理。(略)
- 第二种制作镜像方式:在docker中直接制作镜像
- 进入到自己的根项目
# mvn clean install
- 新建一个文件夹,创建文件Dockerfile,写入如下内容:
FROM java:8
VOLUME /tmp
#这里的user-service-0.0.1-SNAPSHOT.jar是项目换成对应jar包名字
ADD user-service-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
- 将生成的jar包挪到这个文件夹,如果当前机器没有docker,将此打包上传到服务器,在当前目录下,输入如下命令:
# cd jar包和Dockerfile的路径
# docker build -t test .
- 上传镜像
- 第一种方式: 把(3)生成的文件在每个k8s的node节点上执行第三步
- 第二种方式: 上传到Harbor私服,这里是上传到私服
步骤参阅: https://blog.csdn.net/qq_25337221/article/details/106562317
- 编写yml文件(这里叫user-service.yml)
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: user-service
spec:
replicas: 3
template:
metadata:
labels:
app: user-service
spec:
containers:
- image: 127.0.0.1/library/user-system/user-service:v1
name: user-service
#拉取策略,默认Aways远程拉取,Never只从本地拉取,IfNotPresent优先本地拉取,没有就远程
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8081 #容器的端口
protocol: TCP
---
kind: Service
apiVersion: v1
metadata:
name: user-service #服务名称,注意不要出现大写字母
spec:
#服务类型,默认是ClusterIp集群内部容器访问地址,会生成一个虚拟IP 与pod不在一个网段
#NodePort会在宿主机上映射一个端口,供外部应用访问模式,就是开放端口给外部访问服务
#LoadBalancer使用负载均衡,三者的功能是叠加的,如loadBalancer=clusterIp+NodePort+负载均衡
type: NodePort
selector:
app: user-service
ports:
- protocol: TCP
nodePort: 31111 #集群开放的端口,端口号应该>=30000
port: 6666 #service内部之间互访的端口
targetPort: 8081 #docker容器本身开放的端口
- 应用到k8s
- 应用yml文件:
# kubectl apply -f user-service.yml
附加额外命令:
在master节点查看当前pod
# kubectl get pod -o wide
在master节点查看当前service
# kubectl get service -o wide
- 浏览器测试:
http://集群任意节点ip:31111/user
如正常访问,则搭建成功。
- 参考链接:
- springboot制作docker镜像(两种都包含): https://www.cnblogs.com/shamo89/p/9201513.html
- springboot部署到k8s环境: https://blog.csdn.net/wobupeiai/article/details/101110052
本内容由安康学院“雨季”原创。
更多推荐
所有评论(0)