获取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