gpt4 book ai didi

linux - 如何使用 AWS EFS 和 ReadWriteMany 配置 Persistent Volume Claim?

转载 作者:IT王子 更新时间:2023-10-28 23:59:42 25 4
gpt4 key购买 nike

我有以下持久卷和卷声明:

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-provisioner。默认 Kubernetes 发行版仍然不支持挂载 EFS,因此您需要此扩展:https://github.com/kubernetes-incubator/external-storage/tree/master/aws/efs

您需要设置它的存储类别:

    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 需要您在那里设置一些东西才能工作。

关于linux - 如何使用 AWS EFS 和 ReadWriteMany 配置 Persistent Volume Claim?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46124006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com