我正在使用Docker应用程序(已打开Kubernetes选项)运行mac OSX Catalina。我使用以下yaml和命令创建一个PersistentVolume。
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nfs-data
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 10Gi
persistentVolumeReclaimPolicy: Retain
nfs:
server: 192.168.1.250
path: "/volume1/docker"
kubectl apply -f pv.yml
此创建和PersistentVolume的名称为pv-nfs-data。接下来,我将使用以下yaml和命令创建一个PersistentVolumeClaim
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-nfs-data
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
kubectl apply -f pvc.yml
这将创建一个名为pvc-nfs-data的PersistentVolumeClaim,但不会将其绑定到可用的PersistentVolume(pv-nfs-data)。相反,它创建一个新的并将其绑定到该文件。如何使PersistentVolumeClaim绑定到可用的PersistentVolume
答案 0 :(得分:3)
适用于Mac的Docker default storage class是dynamic provisioning type,就像您在AKS / GKE上一样,它也在其中分配物理存储。
→ kubectl get StorageClass
NAME PROVISIONER AGE
hostpath (default) docker.io/hostpath 191d
要使PVC使用现有的PV,可以禁用存储类,并在PV中指定哪个PVC可以将其与claimRef
一起使用。
PV包含您要创建的PVC的claimRef
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nfs-data
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 10Gi
claimRef:
namespace: insert-your-namespace-here
name: pv-nfs-data-claim
persistentVolumeReclaimPolicy: Retain
nfs:
server: 192.168.1.250
path: "/volume1/docker"
PVC将storageClassName
设置为''
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pv-nfs-data-claim
namespace: insert-your-namespace-here
spec:
storageClassName: ''
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
您可以通过添加一个NFS dynamic provisioner并为其创建一个storage class来使用NFS进行动态路由,然后让kubernetes解决其余的问题。较新版本的Kubernetes(1.13+)可以使用CSI NFS driver