1.挂载本地路径
pod yaml
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- name: test
image: library/busybox
command: ["/bin/sh"]
args: ["-c", "while true; do echo hello; sleep 10;done"]
volumeMounts:
- mountPath: /mnt/host_src # 容器内挂载路径,会自动创建
name: local-vol
volumes:
- name: local-vol # 与volumeMounts对应
hostPath:
path: /tmp # 宿主机路径
2.pod直接挂载nfs
2.1 配置nfs
linux之nfs配置
2.2 pod直接挂载nfs
pod yaml
apiVersion: v1
kind: Pod
metadata:
name: test-nfs
spec:
containers:
- name: test-nfs
image: library/busybox
command: ["/bin/sh"]
args: ["-c", "while true; do echo hello; sleep 10;done"]
volumeMounts:
- mountPath: /mnt/data # 容器内挂载路径
name: nfs-vol
volumes:
- name: nfs-vol
nfs:
server: 192.168.185.6
path: /data
3.pvc挂载nfs
pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv3
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
storageClassName: slow
mountOptions:
- nolock
- nfsvers=3
- vers=3
nfs:
path: /data
server: 192.168.0.101
kubectl apply -f pv.yaml
kubectl get pv
pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: task-pv-claim
spec:
storageClassName: slow
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
kubectl apply -f pvc.yaml
kubectl get pvc
pvc-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: task-pv-pod
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: task-pv-claim
containers:
- name: task-pv-container
image: nginx
ports:
- containerPort: 80
hostPort: 8008
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage
kubectl apply -f pvc-pod.yaml
kubectl get pod
4.挂载本地pvc
pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: task-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/data"
kubectl apply -f pv.yaml
kubectl get pv
pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: task-pv-claim
spec:
storageClassName: slow
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
kubectl apply -f pvc.yaml
kubectl get pvc
pvc-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: task-pv-pod
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: task-pv-claim
containers:
- name: task-pv-container
image: nginx
ports:
- containerPort: 80
hostPort: 8008
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage
kubectl apply -f pvc-pod.yaml
kubectl get pod