命令记不住

登陆

k8s 示例 emptyDir hostPath nfs

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

.

推荐阅读