阿里云盾导致 cgroup2 cpu 控制器丢失的坑

今天我突发奇想,要重新部署我的个人 Kubernetes 集群,于是我买了一台新的阿里云服务器,并使用了 Ubuntu 22.04 镜像。

然后就是常规的步骤:

  • 彻底删除 snapd
  • apt update && apt upgrade -y 更新所有包
  • 重启主机
  • 安装 k3s

结果 k3s 服务无法启动,报告了一个神奇的错误,说没有 cgroup2 cpu controller

排查错误

1. 确认使用的是 cgroup2

我心想,都已经是 2022 年了,各个操作系统的最新发行版都默认 cgroup2 了,怎么还会有这种报错。

于是我执行了 mount -l 确认了一眼,当前 /sys/fs/cgroup 的确使用的是 cgroup2

2. 确认当前可用的 cgroup 控制器

我看了一眼 /sys/fs/cgroup/cgroup.controllers 果然没有 cpu 这一项,其他的 memory, io, cpuset 等都正常

3. 为什么唯独少了 cpu 控制器

搜索了半天,有两个说法:

  1. 需要使用 Linux 启动参数 cgroup_enable=cpu 或者 cgroup_cpu=1
  2. 当操作系统存在 实时进程 时,无法激活 cgroupv2cpu 控制器,给出的例子是 PulseAudio

然后我的大脑就把选项 2 过滤掉了,我心想我一个全新安装的非桌面操作系统,怎么会有这种进程。

于是参照选项 1,各种重装操作系统,调整 /etc/default/grub 文件中的 Linux 启动参数,都无果。

实际上,选项 1 这一条是过时的,对于 cgroup2 是无效的。

4. 锁定原因

最后我突然想到了,会不会是阿里云搞的什么骚操作,造成了这个问题。

我把思路锁定到选项 2 上,使用 ps 命令,果然揪到了 AliYunDun 进程似乎是跑在 实时进程 优先级上。

禁用 aegis 服务后,重启主机,正常了。。。

心中仿佛有一万匹 CNM 奔腾,这个坑太难发现了。

你可能感兴趣的:(Kubernetes,云厂商,阿里云,linux,服务器,kubernetes)