1、创建持久化pv文件
cat nginx-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nginx-data
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 10Gi
namespace: default
persistentVolumeReclaimPolicy: Delete
nfs:
server: 192.168.0.20
path: /app/k8s-volume
2、创建持久化pvc文件
cat nginx-pvc.ayml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nginx-data
namespace: default
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
3、创建nginx StatefulSet文件
cat nginx.yaml
apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
labels:
k8s-app: nginx
name: nginx
namespace: default
spec:
podManagementPolicy: OrderedReady
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: nginx
template:
metadata:
labels:
k8s-app: nginx
spec:
containers:
- image: nginx:latest
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /
port: 80
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: nginx
readinessProbe:
failureThreshold: 3
httpGet:
path: /
port: 80
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 250m
memory: 256Mi
volumeMounts:
- mountPath: /mnt
name: vol
imagePullSecrets:
- name: nginxsecret
restartPolicy: Always
volumes:
- name: vol
persistentVolumeClaim:
claimName: nginx-data
4、创建nginx_svc文件
cat nginx_svc.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
selector:
k8s-app: nginx
5、应用以上文件
kubectl apply -f nginx-pv.yaml
kubectl apply -f nginx-pvc.yaml
kubectl apply -f nginx.yaml
kubectl apply -f nginx_svc.yaml