搭建 NFS 服务器
KubeSphere 支持存储插件 NFS-client Provisioner。若想使用该插件,必须预先配置 NFS 服务器。NFS 服务器配置完成后,NFS 客户端会在服务器机器上挂载目录,以便 NFS 客户端访问 NFS 服务器上的文件,即您需要创建并输出客户端机器可以访问的目录。
NFS 服务器机器就绪后,您可以使用 KubeKey 通过 Helm Chart 来安装 NFS-client Provisioner 以及 Kubernetes 和 KubeSphere。您必须在 Chart 配置中提供 NFS 服务器的输出目录以便 KubeKey 在安装时使用。
备注
- 您也可以在安装 KubeSphere 集群后创建 NFS-client 的存储类型。
- 不建议您在生产环境中使用 NFS 存储(尤其是在 Kubernetes 1.20 或以上版本),这可能会引起
failed to obtain lock
和input/output error
等问题,从而导致 PodCrashLoopBackOff
。此外,部分应用不兼容 NFS,例如 Prometheus 等。
本教程演示了如何安装 NFS 服务器,以 Ubuntu 16.04 为例。
安装及配置 NFS 服务器
步骤 1:安装 NFS 服务器 (NFS kernel server)
若要设置服务器机器,就必须在机器上安装 NFS 服务器。
-
运行以下命令,使用 Ubuntu 上的最新软件包进行安装。
sudo apt-get update
-
安装 NFS 服务器。
sudo apt install nfs-kernel-server
步骤 2:创建输出目录
NFS 客户端将在服务器机器上挂载一个目录,该目录已由 NFS 服务器输出。
-
运行以下命令来指定挂载文件夹名称(例如,
/mnt/demo
)。sudo mkdir -p /mnt/demo
-
出于演示目的,请移除该文件夹的限制性权限,这样所有客户端都可以访问该目录。
sudo chown nobody:nogroup /mnt/demo
sudo chmod 777 /mnt/demo
步骤 3:授予客户端机器访问 NFS 服务器的权限
-
运行以下命令:
sudo nano /etc/exports
-
将客户端信息添加到文件中。
/mnt/demo clientIP(rw,sync,no_subtree_check)
如果您有多台客户端机器,则可以将它们的客户端信息全部添加到文件中。或者,在文件中指定一个子网,以便该子网中的所有客户端都可以访问 NFS 服务器。例如:
/mnt/demo 192.168.0.0/24(rw,sync,no_subtree_check)
备注
rw
:读写操作。客户端机器拥有对存储卷的读写权限。sync
:更改将被写入磁盘和内存中。no_subtree_check
:防止子树检查,即禁用客户端挂载允许的子目录所需的安全验证。
-
编辑完成后,请保存文件。
步骤 4:应用配置
-
运行以下命令输出共享目录。
sudo exportfs -a
-
重启 NFS 服务器。
sudo systemctl restart nfs-kernel-server
反馈
这篇文章对您有帮助吗?
感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。
页面内容