1 Docker部署SpringBoot
1.1 部署
(2) 打成jar包
(3) 上传至Docker服务器,制作Dockerfile
FROM java:8
ADD springboot-web-1.0-SNAPSHOT.jar app.jar
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
RUN bash -c 'touch /app.jar'
EXPOSE 9000
ENTRYPOINT ["java","-jar","/app.jar"]
(4) 制作镜像
docker build -f Dockerfile -t 192.168.38.100/library/springboot:v1.0 .
(5) 运行容器
docker run -d -p 9000:9000 --name springboot 192.168.38.100/library/springboot:v1.0
1.2 缺点
(1) 如果当前springboot容器挂了或Dokcer服务器挂了当前项目无法访问。
(2) 如果把当前项目部署到多台Docker服务器上,重复步骤太多,又要手动实现负载均衡。
2 K8s 部署SpringBoot
2.1 环境概述
192.168.38.50 master
192.168.38.51 node1
192.168.38.52 node2
192.168.38.100 harbor/nfs(数据持久卷,搭建过程略)
2.2 nfs-springboot-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-springboot-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
nfs:
path: "/usr/local/kubernetes/volumes/logs/"
server: 192.168.38.100
readOnly: false
#创建pv
kubectl apply -f nfs-springboot-pv.yaml
#查看
kubectl get pv
2.3 springboot-pvc.yaml
vim springboot-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc-springboot
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
kubectl apply -f springboot-pvc.yaml
2.4 springboot-deployment.yaml
vim springboot-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: springboot
name: springboot
spec:
replicas: 1
selector:
matchLabels:
app: springboot
template:
metadata:
labels:
app: springboot
spec:
containers:
- name: springboot
image: 192.168.38.100/library/springboot:v1.0
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: /logs
name: springboot-volumes
volumes:
- name: springboot-volumes
persistentVolumeClaim:
claimName: nfs-pvc-springboot
---
apiVersion: v1
kind: Service
metadata:
labels:
app: springboot
name: springboot
spec:
ports:
- port: 9000
protocol: TCP
targetPort: 9000
selector:
app: springboot
type: ClusterIP
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: springboot
spec:
rules:
- host: rosh.springboot.com
http:
paths:
- backend:
serviceName: springboot
servicePort: 9000
kubectl apply -f springboot-deployment.yaml
#查看pod,svc
kubectl get pod
kubectl get svc
2.5 通过ingress访问
3 实验
3.1 当部署服务器挂了
3.2 动态扩容
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/15121.html