获取kubelet管理的容器

k8s 1.15

pkg/kubelet/kuberuntime/kuberuntime_container.go
getKubeletContainers方法
获取kubelet管理的所有业务容器(true表示包括退出的和死亡的容器,用于GC)
补充代码

kubelet日志

容器情况

启动一个基于Nginx镜像、携带Label是"io.kubernetes.docker.type"="container"的test容器

docker run --name test --label "io.kubernetes.docker.type"="container" -itd 84581e99d

kubelet日志

说明test容器已经进入了kubelet容器管理列表,只是其他信息错误导致结构体转换失败。

这个错误来自pkg/kubelet/dockershim/docker_container.go中ListContainers函数

kubelet通过容器标签"io.kubernetes.docker.type"="container"来识别自己管理的业务容器,通过容器标签"io.kubernetes.docker.type"="podsandbox"来识别自己管理的pause容器。

pkg/kubelet/dockershim/docker_service.go

pkg/kubelet/dockershim/docker_sandbox.go

pkg/kubelet/dockershim/docker_container.go

posted on 2023-01-14 14:40  王景迁  阅读(95)  评论(0编辑  收藏  举报

导航