
k8s示例emptyDir hostPath nfs
1.临时数据卷emptyDir
emptyDir本质上是一个目录
应用场景:Pod内的数据共享
apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: empthdir name: empthdir spec: containers: - image: nginx name: empthdir1 command: ["bash","-c","for i in {1..100};do echo $i >>/data/hello;sleep 1;done"] volumeMounts: - name: data mountPath: /data - image: nginx name: empthdir2 volumeMounts: - name: data mountPath: /data volumes: - name: data emptyDir: {}本地存储路径
/var/kib/kubelet/pods/<pod-id>/volumes/kubernetes.io~empty-dir/data.
2.节点数据卷hostPath
hostPath卷:挂载Node文件系统(pod所在节点)上文或者目录到Pod中的容器
应用场景:Pod中容器需要访问宿主机文件
yaml
apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: hostPath name: hostPath spec: containers: - image: nginx name: hostPath1 command: ["bash","-c","for i in {1..100};do echo $i >>/opt/hello;sleep 1;done"] volumeMounts: - name: host-path mountPath: /opt - image: nginx name: hostPath2 volumeMounts: - name: data mountPath: /data volumes: - name: host-path hostPath: path: /etc type: Directory - name: data emptyDir: {}挂载node节点上的目录
3.网络数据卷nfs
网络共享存储,pod删除漂移不影响存储数据
yaml
apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: nfs name: nfs spec: replicas: 1 selector: matchLabels: app: nfs strategy: {} template: metadata: creationTimestamp: null labels: app: nfs spec: containers: - image: nginx name: nginx volumeMounts: - name: wwwroot mountPath: /usr/share/nginx/html volumes: - name: wwwroot nfs: server: 192.168.122.71 path: /data/1.