-
Notifications
You must be signed in to change notification settings - Fork 65
[Bug]: panic: we cant not find any cgroup driver of kubelet after requesting configz and default files #75
Description
这个问题是否已经存在?
- 我已经搜索过现有的问题
部署环境
内核版本:Linux version 6.1.156-177.286.amzn2023.x86_64 (mockbuild@ip-10-0-50-14) (gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-5), GNU ld version 2.41-50.amzn2023.0.4) #1 SMP PREEMPT_DYNAMIC Tue Oct 21 22:16:56 UTC 2025
华佗版本:latest (20251201)
如何复现
config配置了es地址与
[Pod]
KubeletReadOnlyPort = 10255
k8s(AWS EKS)中启动失败,报错:
time="2025-12-01T12:21:00.669519347Z" level="info" msg="InitDefaultClients includes engines: elasticsearch, local-file" file="storage.go:133" func="huatuo-bamai/internal/storage.InitDefaultClients"
panic: we cant not find any cgroup driver of kubelet after requesting configz and default files
goroutine 1 [running]:
huatuo-bamai/internal/pod.kubeletCgroupDriverCacheUpdate(0xc000157180)
/go/huatuo-bamai/internal/pod/container_kubelet_sync.go:475 +0x405
huatuo-bamai/internal/pod.ContainerPodMgrInit(0xc000157180)
/go/huatuo-bamai/internal/pod/container_kubelet_sync.go:150 +0x5f0
main.mainAction(0xc000425540)
/go/huatuo-bamai/cmd/huatuo-bamai/main.go:102 +0xda5
github.com/urfave/cli/v2.(*Command).Run(0xc00048a840, 0xc000425540, {0xc00003e0a0, 0x5, 0x5})
/go/huatuo-bamai/vendor/github.com/urfave/cli/v2/command.go:276 +0x1062
github.com/urfave/cli/v2.(*App).RunContext(0xc0000c9600, {0x29a6be0, 0x3776560}, {0xc00003e0a0, 0x5, 0x5})
/go/huatuo-bamai/vendor/github.com/urfave/cli/v2/app.go:333 +0x2c5
github.com/urfave/cli/v2.(*App).Run(0xc0000c9600, {0xc00003e0a0, 0x5, 0x5})
/go/huatuo-bamai/vendor/github.com/urfave/cli/v2/app.go:307 +0x6b
main.main()
/go/huatuo-bamai/cmd/huatuo-bamai/main.go:302 +0x10c5
修复建议或方案
func kubeletCgroupDriverCacheUpdate(ctx *PodContainerInitCtx) error {
var (
config kubeletconfig.KubeletConfiguration
err error
)
config, err = kubeletConfigDoRequest(kubeletPodListClient, kubeletConfigAuthorizedURL(ctx.PodAuthorizedPort))
if err == nil {
kubeletPodCgroupDriver = config.CgroupDriver
return nil
}
log.Debugf("kubelet config port is not available, try to read config files: %v", kubeletDefaultConfigPath)
config, err = kubeletConfigDefault()
if err != nil {
panic("we cant not find any cgroup driver of kubelet after requesting configz and default files")
}
问题1:kubeletConfigDoRequest这里是只尝试了authorized port,没有尝试无认证的(10255)吗?
问题2:接下来尝试去default位置读取 kubeletDefaultConfigPath = []string{"/var/lib/kubelet/config.yaml", "/var/lib/kubelet/ack-managed-config.yaml"} 但是我的主机上并没有这两个文件
/host # ls -l var/lib/kubelet/
total 28
drwx------ 2 root root 6 Nov 28 10:53 checkpoints
-rw------- 1 root root 62 Nov 28 10:53 cpu_manager_state
drwxr-xr-x 2 root root 26 Dec 1 02:34 device-plugins
-rw-r--r-- 1 root root 628 Dec 1 02:30 kubeconfig
-rw------- 1 root root 61 Nov 28 10:53 memory_manager_state
drwxr-xr-x 2 root root 86 Nov 28 10:54 pki
drwxr-x--- 3 root root 29 Nov 28 10:54 plugins
drwxr-x--- 2 root root 38 Nov 28 10:54 plugins_registry
drwxr-x--- 2 root root 26 Dec 1 02:34 pod-resources
drwxr-x--- 15 root root 16384 Dec 1 12:19 pods
kubelet的配置是在
/host # cat etc/kubernetes/kubelet/config.json |grep cgroup
"cgroupDriver": "systemd",
"cgroupRoot": "/",
其他
No response