如何在 kubernetes pods 中添加交换内存?

How to add swap memory in kubernates pods?

我需要在 kubernetes pod 中添加交换内存。因此,如果任何 pods 超过可用 RAM,则它可以使用硬盘中的交换内存。这在 kubernetes 中可能吗?

official Kubernetes prerequisites 表示:

Swap disabled. You MUST disable swap in order for the kubelet to work properly.

您应该对部署使用 cpu/memory 限制。 Kubelet 不是为处理交换情况而设计的。如果允许在主机系统上发生内存交换,则可能会导致 Kubernetes 内出现性能和稳定性问题。

但是有一种方法可以在安装时禁用交换 kubeadm:

  • /etc/systemd/system/kubelet.service.d/20-allow-swap.conf 中创建一个包含以下内容的文件:

[Service] Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false"

  • 执行:

sudo systemctl daemon-reload

  • 运行 kubeadm 带标志 --ignore-preflight-errors=Swap:

kubeadm init --ignore-preflight-errors=Swap

但请记住,这不是推荐的方式。