天天看点

k8s笔记17--ubuntu & k8s 开启 swap功能

k8s笔记17--k8s 中途开启 swap功能

  • ​​1 介绍​​
  • ​​2 方法​​
  • ​​2.1 ubuntu 开启swap​​
  • ​​2.2 k8s 开启swap​​
  • ​​3 说明​​

1 介绍

swap 功能是 linux是一个非常强大的功能,类似于windows的虚拟内存,当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。

本文主要介绍如何开启linux系统的swap, 如何在开启swap功能的系统下运行 k8s 集群。

2 方法

2.1 ubuntu 开启swap

创建分区文件,其中 count 为分区的大小
sudo mkdir /swap
cd /swap
sudo dd if=/dev/zero of=swapfile bs=1024 count=2000000
sudo mkswap -f swapfile

挂载分区文件:
swapon swapfile

挂载持久化:
编辑/etc/fstab, 添加
/swap/swapfile none swap sw 0 0

卸载分区文件
sudo      

配置完成后可以通过free -m来查看是否有Swap

k8s笔记17--ubuntu & k8s 开启 swap功能

2.2 k8s 开启swap

修改 kubelet 的启动文件配置,如下:
cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 
# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
EnvironmentFile=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS --fail-swap-on=false

在启动命令末尾加上: --fail-swap-on=false ,然后reload配置
systemctl daemon-reload
systemctl start kubelet      

配置完成后可以通过ps -ef|grep kubelet 来查看kubelet启动信息,很明显多了一个个swap参数,如下所示:

3 说明