Rancher 使用 NFS Storage Classes 进行动态 NFS 存储

Posted catoop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rancher 使用 NFS Storage Classes 进行动态 NFS 存储相关的知识,希望对你有一定的参考价值。

在 Rancher 里,默认不支持基于 NFS 的 Storage Classes,本文通过安装应用商店(helm chart 方式)中的 nfs-subdir-external-provisioner 来实现动态提供 nfs 存储。

nfs-subdir-external-provisioner 可动态为kubernetes提供pv卷,是Kubernetes的简易NFS的外部provisioner,本身不提供NFS,需要现有的NFS服务器提供存储。持久卷目录的命名规则为: n a m e s p a c e − namespace- namespacepvcName-$pvName。

此组件是对 nfs-client-provisioner 的扩展,nfs-client-provisioner 已经不提供更新,且 nfs-client-provisioner 的 Github 仓库已经迁移到 NFS-Subdir-External-Provisioner 的仓库。自 k8s 1.20 之后,不要再使用 nfs-client-provisioner 了,请使用 nfs-subdir-external-provisioner,否则会出现错误日志导致不能正常自动创建 pvc,异常内容 unexpected error getting claim reference: selfLink was empty, can't make reference

添加 chart 到自己的私有 helm-chart 库中

1、前往 nfs-subdir-external-provisioner 的 github 地址:https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner
releases 页面中下载文件 nfs-subdir-external-provisioner-4.0.16.tgz

2、上传文件到自己的私有 helm-chart 中

添加应用商店到 Rancher 中

安装 nfs-subdir-external-provisioner

上图中的 repository 根据你自己的网络情况决定是否修改(默认值是 k8s.gcr.io 域下的),如果你的网络环境无法访问 google 的 k8s.gcr.io,可以参考文章《国内拉取 gcr.io 镜像》解决问题。目前镜像地址 willdockerhub/nfs-subdir-external-provisioner 是可以使用的。

下一步,继续,都是默认选项,等待 App 安装完成并成功后,到 StorageClasses 页面即可看到如下图片内容:

至此结束,然后你可以手工创建一个 pvc 验证一下结果。


(END)

以上是关于Rancher 使用 NFS Storage Classes 进行动态 NFS 存储的主要内容,如果未能解决你的问题,请参考以下文章

Rancher2.0中使用外置NFS存储部署Nginx实验

Rancher添加NFS持久卷

rancher部署skywalking

AWS上搭建Storage Gateway并创建SMB和NFS服务

kubernetes nfs storage class arm64

kubernetes nfs storage class arm64