我运行一个需要所有客户端ips列表进行同步的应用程序。我在Kubernetes中运行这个应用程序,并从这些客户端窗口向https://kubernetes/api/v1/pods
发出请求。所以我正在寻找一种可靠的方法来识别所有由同一部署(复制集)以这种方式创建的pod。找到兄弟豆荚(通过同一部署部署的豆荚)
因此,重要的是,在轧制升级过程中,还可以正确识别吊舱。
我有一对夫妇的想法,我想分享,甚至没有真正劝说我:
1)使用标签(?labelSelector=label=value
):
1.A)定义自定义标签只有这些豆荚具有:有效的解决方案,但由于解决方案应该是一般的,我不想定义一个特殊的标签,豆荚需要有。也是这样,我不能确定添加其他标签的豆荚。
1.b)使用自动生成的pod-template-hash label:很遗憾,在滚动更新过程中会发生更改,因此发生更新时,选择器无法正常工作。
2)使用自定义字段(?fieldSelector
)
我想使用一个所述name
或ownerReference.name
属性的子部分的。可惜的是fieldSelector是badly documented或根本不工作。我还想过通过jq
解析完整的豆荚列表,但不太喜欢这种依赖关系。
3)通过引用一个共同的服务识别所有吊舱
我现在看到的方式来认识到服务(旁边再次使用标签)
该吊舱属于是否有任何其他的想法找出兄弟荚?我有些惊讶,我没有找到一个类似的问题。
标签/选择器真的是你的样子ng for。使用'kubectl get rs [name] -o = yaml'并查看'selector:'字段。 –
当然,通常选择应该使用标签来完成。虽然我仍然很惊讶没有通用的方式来选择兄弟姐妹,但在与一些合作伙伴交谈之后,我意识到没有和标签是要走的路。 – nik