首页 > 解决方案 > 如何在 kubernates pod 中添加交换内存?

问题描述

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

标签: kubernetesk3s

解决方案


官方 Kubernetes 先决条件说:

交换禁用。您必须禁用交换才能使 kubelet 正常工作。

您应该使用 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

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


推荐阅读