如何在 Kubernetes pod 中添加交换内存?

Posted

技术标签:

【中文标题】如何在 Kubernetes pod 中添加交换内存?【英文标题】:How to add swap memory in kubernates pods? 【发布时间】:2020-11-19 02:55:15 【问题描述】:

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

【问题讨论】:

【参考方案1】:

official Kubernetes prerequisites 说:

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

您应该使用 cpu/内存限制进行部署。 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

运行带有标志--ignore-preflight-errors=Swapkubeadm

kubeadm init --ignore-preflight-errors=Swap

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

【讨论】:

以上是关于如何在 Kubernetes pod 中添加交换内存?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Kubernetes Pod 内进行网络抓包

Kubernetes如何管理暴露服务

Kubernetes如何管理暴露服务

Kubernetes如何管理暴露服务

Kubernetes Pod 安全策略(PSP)配置

Kubernetes pod内调用API