一、deployment的不足:
二、statefuset设计
三、headless service
案例部署:
1.部署pv
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv01
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
nfs:
path: /nfsdata/pv01
server: 192.174.1.53
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv02
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
nfs:
path: /nfsdata/pv02
server: 192.174.1.53
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv03
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
nfs:
path: /nfsdata/pv03
server: 192.174.1.53
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv04
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
nfs:
path: /nfsdata/pv04
server: 192.174.1.53
2.部署app
vim nginx.yml
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app: nginx-web
name: nginx-web
spec:
replicas: 3
selector:
matchLabels:
app: nginx
serviceName: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx:alpine
name: nginx
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www-storage
mountPath: "/usr/share/nginx/html"
volumeClaimTemplates:
- metadata:
name: www-storage
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx
name: nginx
spec:
selector:
app: nginx
ports:
- port: 80
clusterIP: None
验证结果:
四、pod版本升级
1.查看现在版本
kubectl get statefulsets.apps -o wide
2.升级
kubectl set image statefulset nginx-web nginx=nginx:mainline
规律总结:
五、statefulse的启停顺序: