我運行一個需要所有客戶端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