Kubernetes上的Jenkins奴隶吊舱在它们被大量奔跑的吊舱包围时消失
我有一个Kubernetes集群在一个吊舱中运行Jenkins master,每个构建在一个单独的从吊舱中运行。当有许多构建在运行时,会有许多吊舱上下旋转,我经常会在这样的作业中看到错误:Kubernetes上的Jenkins奴隶吊舱在它们被大量奔跑的吊舱包围时消失,jenkins,kubernetes,horizontal-pod-autoscaling,Jenkins,Kubernetes,Horizontal Pod Autoscaling,我有一个Kubernetes集群在一个吊舱中运行Jenkins master,每个构建在一个单独的从吊舱中运行。当有许多构建在运行时,会有许多吊舱上下旋转,我经常会在这样的作业中看到错误: Cannot contact slave-jenkins-0g9p0: hudson.remoting.ChannelClosedException: Channel "hudson.remoting.Channel@197b6a38:JNLP4-connect connection from 10
Cannot contact slave-jenkins-0g9p0: hudson.remoting.ChannelClosedException: Channel "hudson.remoting.Channel@197b6a38:JNLP4-connect connection from 10.10.3.90/10.10.3.90:54418": Remote call on JNLP4-connect connection from 10.10.3.90/10.10.3.90:54418 failed. The channel is closing down or has closed down
Could not connect to slave-jenkins-0g9p0 to send interrupt signal to process
例如,吊舱就消失了。没有它存在的痕迹。在查看诸如kubectl description pod slave-jenkins-0g9p0
之类的信息时,没有错误消息,它只是停止存在
我有一种感觉,因为有多个吊舱上下旋转,Kubernetes试图平衡节点上的负载并重新安排吊舱,但在杀死它之后,它无法在另一个节点上旋转吊舱。不过我不能肯定。也许有一种方法可以告诉K8s将pod绑定到节点上,直到它自己退出?我真的不确定如何调试这个案例
- Kuberentes版本:
AWS eksv1.16.13-eks-2ba888
- 詹金斯版本:
2.257
- Kubernetes插件版本
1.27.2
v1.14.6
)控制,并使用AWS t3a.large(2个CPU,8GB内存)实例
更新2:
我相信我已经找到了问题的原因。我禁用了群集自动缩放器]()(v1.14.6),问题停止了
因此,似乎正在发生的是,autoscaler正在删除从属pd运行的节点。我知道污点可以用来告诉autoscaler不要删除节点,但是有没有一种方法可以动态地做到这一点,即如果某个pod正在运行,它不会删除节点。无需开发新产品。pod有任何限制吗?节点上是否有足够的资源?你能分享示例
pod/deployment
manifest吗?嗨@MariuszK。我用进一步的信息更新了原来的问题。谢谢从POD终止时起,节点中是否有日志?