本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 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 驱动程序,请执行以下操作:
-
在可以访问您的 Kubernetes 集群
kubectl的命令行终端上,运行以下命令:curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/deploy/install-driver.sh | bash -s master --
-
等待上一个命令完成,然后使用以下命令确保 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 对象,请执行以下操作:
-
创建一个名为
storageclass.yaml的配置文件,其内容与以下示例类似。用您自己的部署特定信息代替显示的内容。ExampleValues--- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name:example-nfs-classnamenamespace:example-namespaceprovisioner: nfs.csi.k8s.io parameters: server:gateway-dns-name-or-ip-addressshare:/example-share-namereclaimPolicy: Retain volumeBindingMode: Immediate mountOptions: - hard - nfsvers=4.1 -
在可以访问和的命令行终端上
kubectlstorageclass.yaml,运行以下命令:kubectl apply -f storageclass.yaml
注意
您还可以 StorageClass 通过向大多数第三方 Kubernetes 管理和容器化平台提供上一步中的
.yaml配置文本来创建。 -
将 Kubernetes 集群中的容器配置为使用您创建的新 StorageClass对象。有关更多信息,请参阅 Kubernetes 在线文档,网址为。https://kubernetes.io/docs/concepts/storage/
创建 NFS PersistentVolume 和对象 PersistentVolumeClaim
要创建新的 NFS PersistentVolume 和 PersistentVolumeClaim 对象,请执行以下操作:
-
创建两个名为
persistentvolume.yaml和的配置文件persistentvolumeclaim.yaml。 -
对于
persistentvolume.yaml,添加与以下示例类似的内容。用您自己的部署特定信息代替显示的内容。ExampleValues--- apiVersion: v1 kind: PersistentVolume metadata: name:pv-nfs-examplenamespec: 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-addressshare:/example-share-name -
对于
persistentvolumeclaim.yaml,添加与以下示例类似的内容。用您自己的部署特定信息代替显示的内容。ExampleValues--- kind: PersistentVolumeClaim apiVersion: v1 metadata: name:examplename-pvc-nfs-staticspec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi volumeName:pv-nfs-examplename# make sure specfied volumeName matches the name of the PersistentVolume you created storageClassName: "" -
在可以访问这两个
.yaml文件的命令行终端上,运行以下命令:kubectlkubectl apply -f persistentvolume.yaml
kubectl apply -f persistentvolumeclaim.yaml
注意
您还可以通过向大多数第三方 Kubernetes 管理和容器化平台提供上一步中的
.yaml配置文本来创建和 PersistentVolumeClaim对象。 PersistentVolume -
将 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 --