如何在 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
但请记住,这不是推荐的方式。
我需要在 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
但请记住,这不是推荐的方式。