目录

背景

解决

方法1

方法2


背景

启动kubelet失败failed to run Kubelet: running with swap on is not supported

I0123 10:28:12.948539    2988 server.go:484] "Kubelet version" kubeletVersion="v0.0.0-master+22140b6a070e09589b5b2bcdf5c396114f25274f"
I0123 10:28:12.948878    2988 server.go:486] "Golang settings" GOGC="" GOMAXPROCS="" GOTRACEBACK=""
I0123 10:28:12.949457    2988 server.go:647] "Standalone mode, no API client"
I0123 10:28:12.990328    2988 server.go:535] "No api server defined - no events will be sent to API server"
I0123 10:28:12.990442    2988 server.go:742] "--cgroups-per-qos enabled, but --cgroup-root was not specified.  defaulting to /"
E0123 10:28:12.990880    2988 run.go:74] "command failed" err="failed to run Kubelet: running with swap on is not supported, please disable swap! or set --fail-swap-on flag to false. 

kubelet检测到当前系统启用了交换空间(swap),而Kubernetes默认不允许在启用swap的节点上运行kubelet。原因是Kubernetes期望节点上的容器能获得稳定的资源分配,而启用swap可能导致内存压力较大时,容器数据被换出到磁盘,影响性能和稳定性。

解决

方法1

禁用swap。

方式1:临时禁用,重启时默认继续开启

sudo swapoff -a

方式2:永久禁用

编辑 /etc/fstab 文件,注释掉或删除涉及交换分区的行。一般这些行以swapon或swap开头,如:

/dev/dm-2 none swap defaults 0 0

给对应的行前加#注释,保存,重启。

方法2

添加启动参数忽略:

--fail-swap-on=false

如果你的启动使用的是配置文件,则也可在文件中增加:

failSwapOn: false

Logo

一站式 AI 云服务平台

更多推荐