kubernetes Pod生命周期与kubelet的EventedPLEG功能损坏

7vhp5slm  于 4个月前  发布在  Kubernetes
关注(0)|答案(7)|浏览(62)

发生了什么?

我发现了一个非常有趣的问题,当我们启用Kubelet的EventedPLEG功能(1.26.7)时,Kubelet无法获取容器状态/删除容器等。
这个问题的结果是kubelet在同一个pod沙箱内启动重复的容器。这导致pod失败,因为有"太多线程!"或者"无法绑定到套接字,因为端口正在使用中"。

在这里也提出了一个问题:containerd/containerd#9070

你期望发生什么?
Evented PLEG应该表现得类似于非evented PLEG。

我们如何尽可能最小精确地重现它?
不确定在KinD/etc上是否容易重现,但对于我们来说:

  1. 运行1.26.7版本
  2. 启用evented PLEG功能门
  3. 观察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,...)和版本(如适用):

8e2ybdfx

8e2ybdfx2#

看起来像是#120941的重复内容。

gzszwxb4

gzszwxb43#

/traige accepted
/assign
这个PR( #120942 )修复了问题

iih3973s

iih3973s4#

/traige accepted /assign
这个PR( #120942 )修复了问题
啊,太好了!非常感谢你

kokeuurv

kokeuurv6#

关于这个问题有什么新消息吗?当我们在启用EventedPLEG功能门时,使用EKS K8s 1.28和containerd 1.7.11,我们也面临着pods中相同的"无法绑定正在使用的端口"问题。

2admgd59

2admgd597#

@marcelovcpereira ,据我所知,具有可能解决方案的PR正在进行中。

相关问题