正如前文所说,k8s 的node节点配置太垃圾,故在之前的测试方案中增加了swap的support,实际生产环境不推荐这么跑,这么做的目的无非是一种穷屌丝的做法。
首先,开启kubelet的swap support,在/etc/sysconfig/kubelet中追加如下字段:
--fail-swap-on=false
比如我的配置文件内容为:
KUBELET_EXTRA_ARGS="--node-ip=11.22.33.44 --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice --fail-swap-on=false"
重启kubelet服务:
# systemctl restart kubelet
然后dd一块“盘”出来:
dd if=/dev/zero of=/swap bs=2M count=1024
接着修改/etc/sysctl.d/k8s.conf中关于swapiness部分,将其有0改为20,即:内存不足20%的情况下才允许使用swap
cat /etc/sysctl.d/k8s.conf ... vm.swappiness=20 ...
接下来就是最基本的挂载swap分区的过程了:
# grep swap /etc/fstab /swap swap swap defaults 0 0 # mount -a && swapon -a
最后查看一下成果吧!
#free -m
total used free shared buff/cache available
Mem: 1990 1359 92 22 538 540
Swap: 2047 0 2047