【问题标题】:How to configure a Persistent Volume Claim using AWS EFS and ReadWriteMany?如何使用 AWS EFS 和 ReadWriteMany 配置持久卷声明?
【发布时间】:2018-02-17 19:47:18
【问题描述】:

我有以下永久音量和音量声明:

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 声明?

【问题讨论】:

    标签: linux amazon-web-services kubernetes nfs


    【解决方案1】:

    您需要在集群中设置 EFS 配置器。默认的 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 需要您在其中设置一些东西才能使其工作。

    【讨论】:

    • 我应该用我的主主机名替换example.com 吗?例如k8s-master.mydomain.cloud?这是干什么用的?
    • 它可以是任何你想要的,它只是让你有一些资源可以在他们想要使用这个存储类时参考。
    • 您好 vascop,感谢您的回答。我正在使用链接:github.com/kubernetes-incubator/external-storage/tree/master/… 创建 PVC,但出现超时错误,知道为什么会出现此错误吗?完成错误消息超时已过期,等待卷附加或挂载 pod “default”/“efs-provisioner-55dcf9f58d-r547q”。卷“pv-volume”的 MountVolume.SetUp 失败:安装失败:退出状态 32
    猜你喜欢
    • 2021-08-27
    • 1970-01-01
    • 2019-08-11
    • 2020-11-08
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2021-03-28
    相关资源
    最近更新 更多