发生了什么?
我发现了一个非常有趣的问题,当我们启用Kubelet的EventedPLEG功能(1.26.7)时,Kubelet无法获取容器状态/删除容器等。
这个问题的结果是kubelet在同一个pod沙箱内启动重复的容器。这导致pod失败,因为有"太多线程!"或者"无法绑定到套接字,因为端口正在使用中"。
在这里也提出了一个问题:containerd/containerd#9070
你期望发生什么?
Evented PLEG应该表现得类似于非evented PLEG。
我们如何尽可能最小精确地重现它?
不确定在KinD/etc上是否容易重现,但对于我们来说:
- 运行1.26.7版本
- 启用evented PLEG功能门
- 观察
crictl ps
输出/systemd-cgls
以查看在同一个pod中启动重复的容器。
我们需要了解其他任何信息吗?
运行统一的cgroup层次结构+ cgroupfs驱动程序
Kubernetes版本:
$ kubectl version
Server Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.7", GitCommit:"84e1fc493a47446df2e155e70fca768d2653a398", GitTreeState:"clean", BuildDate:"2023-07-19T12:16:45Z", GoVersion:"go1.20.6", Compiler:"gc", Platform:"linux/amd64"}
云提供商:AWS
操作系统版本:
# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here
安装工具:
容器运行时(CRI)和版本(如适用):containerd 1.7.5,runc 1.19(已测试过1.18)
相关插件(CNI,CSI,...)和版本(如适用):
7条答案
按热度按时间de90aj5v1#
/sig node
8e2ybdfx2#
看起来像是#120941的重复内容。
gzszwxb43#
/traige accepted
/assign
这个PR( #120942 )修复了问题
iih3973s4#
/traige accepted /assign
这个PR( #120942 )修复了问题
啊,太好了!非常感谢你
ldioqlga5#
/triage accepted
kokeuurv6#
关于这个问题有什么新消息吗?当我们在启用EventedPLEG功能门时,使用EKS K8s 1.28和containerd 1.7.11,我们也面临着pods中相同的"无法绑定正在使用的端口"问题。
2admgd597#
@marcelovcpereira ,据我所知,具有可能解决方案的PR正在进行中。