Kubernetes PV文件未保存在主机上
hi关于持久卷的主机路径的所有快速问题 我在这里创建了PV和PVCKubernetes PV文件未保存在主机上,kubernetes,Kubernetes,hi关于持久卷的主机路径的所有快速问题 我在这里创建了PV和PVC apiVersion: v1 kind: PersistentVolume metadata: name: task-pv-volume labels: type: local spec: storageClassName: manual capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path:
apiVersion: v1
kind: PersistentVolume
metadata:
name: task-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: task-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
我运行了一个样本舱
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
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage
我执行pod并创建了一个文件
root@task-pv-pod:/# cd /usr/share/nginx/html
root@task-pv-pod:/usr/share/nginx/html# ls
tst.txt
但是,当我返回主机并尝试删除该文件时,它不会出现。知道为什么吗?我的PV和PVC是正确的,因为我可以看到它是有界的
ubuntu@ip-172-31-24-21:/home$ cd /mnt/data
ubuntu@ip-172-31-24-21:/mnt/data$ ls -lrt
total 0
持久卷(PV)是一种kubernetes资源,其生命周期独立于pod。使用PVC消耗PV使其在其他工具中可见。例如azure文件、ELB、带有NFS的服务器等。我这里的观点是,节点中没有理由存在PV
如果希望将持久性保存在节点中,请使用PVs的hostPath
选项。看看这个。虽然这不是一个好的生产实践 持久卷(PV)是一种kubernetes资源,其生命周期独立于pod。使用PVC消耗PV使其在其他工具中可见。例如azure文件、ELB、带有NFS的服务器等。我这里的观点是,节点中没有理由存在PV
如果希望将持久性保存在节点中,请使用PVs的
hostPath
选项。看看这个。虽然这不是一个好的生产实践 首先,如果要创建PVC,则不需要创建PV。如果您有合适的storageClass,PV将创建PV
其次,hostPath是Kubernetes世界中一个微妙的PV。这是唯一一个安装在吊舱中不需要创建的PV。因此,您不可能既不创建PV也不创建PVC,主机路径卷也可以正常工作
要进行测试,请删除PV和PVC,然后按如下方式创建Pod:
apiVersion: v1
kind: Pod
metadata:
name: nginx-volume
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
securityContext:
privileged: true
ports:
- containerPort: 80
name: nginx-http
volumeMounts:
- name: nginx
mountPath: /root/nginx-volume # path in the pod
volumes:
- name: nginx
hostPath:
path: /var/test # path in the host machine
我知道这是一个令人困惑的概念,但事实就是如此。首先,如果要创建PVC,则不需要创建PV。如果您有合适的storageClass,PV将创建PV 其次,hostPath是Kubernetes世界中一个微妙的PV。这是唯一一个安装在吊舱中不需要创建的PV。因此,您不可能既不创建PV也不创建PVC,主机路径卷也可以正常工作 要进行测试,请删除PV和PVC,然后按如下方式创建Pod:
apiVersion: v1
kind: Pod
metadata:
name: nginx-volume
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
securityContext:
privileged: true
ports:
- containerPort: 80
name: nginx-http
volumeMounts:
- name: nginx
mountPath: /root/nginx-volume # path in the pod
volumes:
- name: nginx
hostPath:
path: /var/test # path in the host machine
我知道这是一个令人困惑的概念,但事实就是如此