在Kubernetes中使用失败的(旧)Pod部署akka集群:从未创建集群

时间:2019-09-05 15:12:16

标签: kubernetes akka akka-cluster

我们正在使用akka-dns发现(无头服务)将akka集群部署到kubernetes中,以进行集群引导。

如果第一个部署失败并且pod无法启动(出于任何原因),并且我们推出了修复程序,则旧副本集将使失败的pod保持“活动状态”,并由无头服务({{1} }是引导程序所必需的),因此,新的好的Pod会将其视为群集的潜在接触点。不幸的是,这个坏豆荚在联系点中地址最低。根据{{​​3}}:

  

如果不存在群集,则每个节点将返回一个空的种子节点列表。在这种情况下,接触点集中地址最低的节点会形成一个新的群集,并开始将自己声明为种子节点。

这意味着由于坏的Pod无法形成群集(通过连接到自身),而新的好Pod也不希望形成它,因为它没有最低的地址,因此不会形成群集。曾经。

可以通过手动删除publishNotReadyAddresses中的Old ReplicaSet来手工修复 ,这样可以删除坏豆荚,最终,好豆荚中的豆荚最低-和唯一的-地址,并且集群已创建。

(我们只有一个暂存环境,每个服务只有一个pod,我将使用3的复制因子/所需接触点对其进行测试,但我怀疑可能会出现相同的问题。)

在kubernetes或akka中是否有配置或策略可以防止此行为,从而使其无法通过手动或自定义脚本进行修复?

0 个答案:

没有答案