如何在 Linux 中为 Kubernetes 禁用交换
Kubernetes 的官方要求的一部分是在尝试启动 Kubernetes 之前完全禁用交换空间。在最近的一些补丁说明中,Kubernetes已经开始在某些场景下实现对交换空间的支持,但尚未完全支持。不支持交换空间的官方原因是很难预测启用交换空间后 Pod 将如何利用内存。
如果您希望安装 Kubernetes 并开始使用它,则需要确保 Linux 系统中的交换空间(对于 Kubernetes 集群中的主节点和所有工作节点)均已关闭。在本教程中,我们将向您展示如何永久禁用 Linux 系统上的交换空间,以便为 Kubernetes 做好准备。
在本教程中您将学习:
如何暂时禁用交换空间
如何永久禁用交换空间
如何在 Linux 中禁用交换空间
运行以下命令将暂时禁用交换。这将使交换保持禁用状态,直到系统重新启动。
$ sudo swapoff -a
要永久禁用交换,我们需要注释掉 /etc/fstab
文件中的相应行。
$ sudo nano /etc/fstab
通过在交换行前面添加井号将其注释掉。
更简单的是,我们可以使用 sed 命令将 #
字符添加到系统的 /etc/fstab
文件中包含单词“swap”的任何行:
$ sudo sed -i '/ swap / s/^/#/' /etc/fstab
结束语
在本教程中,我们了解了如何在 Linux 系统上禁用交换空间以适应 Kubernetes。由于 Kubernetes 要求禁用交换空间,因此在尝试启动并运行集群之前,我们必须确保完成这一关键步骤。