如何使用 AWS EFS 和 ReadWriteMany 配置 Persistent Volume Claim?
How to configure a Persistent Volume Claim using AWS EFS and ReadWriteMany?
我有以下持久卷和卷声明:
kind: PersistentVolume
apiVersion: v1
metadata:
name: kloud
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
nfs:
server: 172.21.51.42
path: /
readOnly: false
和:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: kloud
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
nfs 服务器是 AWS EFS。我专门 ssh 到 k8s master 并检查我是否可以手动挂载 NFS 卷。但是当我使用 kubectl 创建卷和声明时,它会无限期地挂在那里待定:
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE
kloud Pending gp2 8s
如果我将模式更改为 ReadWriteOnce
,它会按预期工作并且不会挂起。
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE
kloud Bound pvc-c9a01bff-94d0-11e7-8ed4-0aec4a0f734a 100Gi RWO gp2
有什么我遗漏的吗?如何使用 k8s 和 EFS 创建 RWX 声明?
您需要在集群中设置 EFS 供应器。默认 Kubernetes 发行版仍然不支持安装 EFS,因此您需要此扩展:https://github.com/kubernetes-incubator/external-storage/tree/master/aws/efs
您需要设置它的存储空间 class:
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
name: aws-efs
provisioner: example.com/aws-efs
然后写入 PVC 的类型:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: efs
annotations:
volume.beta.kubernetes.io/storage-class: "aws-efs"
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Mi
不要介意存储大小,虽然 EFS 不使用它,但 Kubernetes 需要您在那里设置一些东西才能工作。
我有以下持久卷和卷声明:
kind: PersistentVolume
apiVersion: v1
metadata:
name: kloud
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
nfs:
server: 172.21.51.42
path: /
readOnly: false
和:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: kloud
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
nfs 服务器是 AWS EFS。我专门 ssh 到 k8s master 并检查我是否可以手动挂载 NFS 卷。但是当我使用 kubectl 创建卷和声明时,它会无限期地挂在那里待定:
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE
kloud Pending gp2 8s
如果我将模式更改为 ReadWriteOnce
,它会按预期工作并且不会挂起。
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE
kloud Bound pvc-c9a01bff-94d0-11e7-8ed4-0aec4a0f734a 100Gi RWO gp2
有什么我遗漏的吗?如何使用 k8s 和 EFS 创建 RWX 声明?
您需要在集群中设置 EFS 供应器。默认 Kubernetes 发行版仍然不支持安装 EFS,因此您需要此扩展:https://github.com/kubernetes-incubator/external-storage/tree/master/aws/efs
您需要设置它的存储空间 class:
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
name: aws-efs
provisioner: example.com/aws-efs
然后写入 PVC 的类型:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: efs
annotations:
volume.beta.kubernetes.io/storage-class: "aws-efs"
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Mi
不要介意存储大小,虽然 EFS 不使用它,但 Kubernetes 需要您在那里设置一些东西才能工作。