在架设很多上层应用系统时会遇到很多需要关闭swap的操作,例如安装Kubernetes节点。通常的做法是在/etc/fstab文件中注销swap分区的挂载,但是没有起作用,运行
free -h
还是能看见挂载的swap,而通过命令
sudo swapoff -a && sudo systemctl restart kubelet.service
是能够关闭并成功启动kubernetes所有相关服务。由此想到开机关闭:
- /etc/rc.local中写入关闭swap
swapoff -a # 添加命令
本人在本机上安装k8s,虽然kubelet服务能够启动,但是网络没有成功启动,因此该方法不能解决问题。
- 通过编辑kubelet服务,在服务启动前关闭swap
- 查看kubelet相关服务依赖
systemd-analyze critical-chain
- 编辑kubelet服务重载配置
sudo systemd edit kubelet.service
# 添加如下配置
[Unit]
After=network.target
[Service]
ExecStartPre=/usr/sbin/swapoff -a
重载服务并重启验证
sudo systemctl daemon-reload && sudo systemctl reboot
其中添加的配置会让系统生成一个重载文件,内容就是上面编辑时添加的内容,文件路径为:/etc/systemd/system/kubelet.service.d/override.conf。
标签:openEuler22.03,服务,分区,sudo,kubelet,swap,关闭,swapoff From: https://blog.51cto.com/huanghai/12018174