我在测试集群中安装了cilium(AWS,因为我们使用cilium CNI插件,所以删除了AWS CNI(,每当我删除cilium命名空间(或运行helm delete
(时,hubble-ui
pod都会处于终止状态。pod有几个容器,但我注意到,当名称空间被删除时,一个名为backend的容器退出,代码为137,使hubble-ui-pod和pod所在的名称空间停留在Terminating
状态。根据我在网上读到的内容,当容器试图使用分配给它们的更多内存时,它们会以137退出。在我的测试集群中,没有在pod或命名空间上定义任何资源限制(spec.containers.[*].resources = {}
(。没有显示错误消息作为错误原因。我使用的是cilium helm包v1.12.3,但这个问题甚至在我们更新helm包版本之前就已经存在了。
我想知道是什么导致了这个问题,因为它破坏了我的CI管道。如何确保后端容器顺利退出?(与清除终结器相反(。
因此,hubble-ui
服务的backend
应用程序/容器中似乎存在错误。Kubernetes向容器发送SIGTERM
信号,但容器没有响应。我通过将一个shell放入容器并发送SIGTERM
和SIGINT
来验证这一点,这似乎是应用程序为了退出而监听的内容,但它对这两个信号都没有响应。
接下来,我添加了一个preStop
钩子,如下所示,吊舱表现为
...
lifecycle:
preStop:
exec:
command: ["/bin/sh", "-c", "kill -SIGILL 1; true"]