使用 NFS CSI 驱动程序 - Amazon Storage Gatewa
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 NFS CSI 驱动程序

按照本节中的步骤安装、配置或删除使用 Amazon S3 文件网关上的 NFS 文件共享在 Kubernetes 集群中存储所需的 CSI 驱动程序。有关更多信息,请参阅上的开源 NFS CSI 驱动程序文档,网址 GitHub 为https://github.com/kubernetes-csi/csi-driver-nfs/blob/master/docs/install-csi-driver-master.md

安装驱动程序

要安装 Kubernetes NFS CSI 驱动程序,请执行以下操作:
  1. 在可以访问您的 Kubernetes 集群kubectl的命令行终端上,运行以下命令:

    curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/deploy/install-driver.sh | bash -s master --

  2. 等待上一个命令完成,然后使用以下命令确保 CSI 驱动程序 pod 正在运行:

    kubectl -n kube-system get pod -o wide -l app=csi-nfs-controller

    kubectl -n kube-system get pod -o wide -l app=csi-nfs-node

    该输出值应该类似于以下内容:

    NAME READY STATUS RESTARTS AGE IP NODE csi-nfs-controller-56bfddd689-dh5tk 4/4 Running 0 35s 10.240.0.19 k8s-agentpool-22533604-0 csi-nfs-controller-56bfddd689-8pgr4 4/4 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 csi-nfs-node-cvgbs 3/3 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 csi-nfs-node-dr4s4 3/3 Running 0 35s 10.240.0.4 k8s-agentpool-22533604-0

创建一个 NFS 对象 StorageClass

要为您的 Kubernetes 集群创建 NFS StorageClass 对象,请执行以下操作:
  1. 创建一个名为storageclass.yaml的配置文件,其内容与以下示例类似。用您自己的部署特定信息代替显示的内容。ExampleValues

    --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: example-nfs-classname namespace: example-namespace provisioner: nfs.csi.k8s.io parameters: server: gateway-dns-name-or-ip-address share: /example-share-name reclaimPolicy: Retain volumeBindingMode: Immediate mountOptions: - hard - nfsvers=4.1
  2. 在可以访问和的命令行终端上 kubectlstorageclass.yaml,运行以下命令:

    kubectl apply -f storageclass.yaml

    注意

    您还可以 StorageClass 通过向大多数第三方 Kubernetes 管理和容器化平台提供上一步中的.yaml配置文本来创建。

  3. 将 Kubernetes 集群中的容器配置为使用您创建的新 StorageClass对象。有关更多信息,请参阅 Kubernetes 在线文档,网址为。https://kubernetes.io/docs/concepts/storage/

创建 NFS PersistentVolume 和对象 PersistentVolumeClaim

要创建新的 NFS PersistentVolume 和 PersistentVolumeClaim 对象,请执行以下操作:
  1. 创建两个名为persistentvolume.yaml和的配置文件persistentvolumeclaim.yaml

  2. 对于persistentvolume.yaml,添加与以下示例类似的内容。用您自己的部署特定信息代替显示的内容。ExampleValues

    --- apiVersion: v1 kind: PersistentVolume metadata: name: pv-nfs-examplename spec: capacity: storage: 10Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain mountOptions: - hard - nolock - nfsvers=4.1 csi: driver: nfs.csi.k8s.io readOnly: false volumeHandle: unique-volumeid-example # make sure it's a unique id in the cluster volumeAttributes: server: gateway-dns-name-or-ip-address share: /example-share-name
  3. 对于persistentvolumeclaim.yaml,添加与以下示例类似的内容。用您自己的部署特定信息代替显示的内容。ExampleValues

    --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: examplename-pvc-nfs-static spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi volumeName: pv-nfs-examplename # make sure specfied volumeName matches the name of the PersistentVolume you created storageClassName: ""
  4. 在可以访问这两个.yaml文件的命令行终端上,运行以下命令:kubectl

    kubectl apply -f persistentvolume.yaml

    kubectl apply -f persistentvolumeclaim.yaml

    注意

    您还可以通过向大多数第三方 Kubernetes 管理和容器化平台提供上一步中的.yaml配置文本来创建和 PersistentVolumeClaim对象。 PersistentVolume

  5. 将 Kubernetes 集群中的容器配置为使用您创建的新 PersistentVolumeClaim 对象。有关更多信息,请参阅 Kubernetes 在线文档,网址为。https://kubernetes.io/docs/concepts/storage/

卸载驱动程序

要卸载 Kubernetes NFS CSI 驱动程序,请执行以下操作:
  • 在可以访问您的 Kubernetes 集群kubectl的命令行终端上,运行以下命令:

    curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/deploy/uninstall-driver.sh | bash -s master --