簡體   English   中英

Kubernetes:獲取網絡上其他Pod的IP地址

[英]Kubernetes: Getting the IP Addresses of Other Pods on the Network

在本地網絡上獲取其他Kubernetes Pod的IP地址的最佳方法是什么?

當前,我正在使用以下命令並解析輸出: kubectl describe pods

不幸的是,上面的命令通常需要花費幾秒鍾來完成(至少需要3秒鍾,通常至少需要30秒鍾以上),並且如果多個請求幾乎同時發生,則會收到503個樣式錯誤。 我圍繞此命令構建了一個緩存系統,用於在本地Pod上緩存IP地址,但是當大約10個Pod醒來並需要創建此緩存時,會有很大的延遲,並且經常會出現許多錯誤。 我覺得我做錯了什么。 獲取網絡上其他Pod的IP地址似乎應該是一個簡單的過程。 那么獲得它們的最佳方法是什么?

有關更多詳細信息,我在其容器引擎上使用了Google的kubernetes系統。 運行標准的Ubuntu映像。


上下文 :要添加上下文,我正在嘗試在群集的Pod之間放一個共享的內存緩存。 為此,他們都需要知道彼此的IP地址。 如果有一種更簡單的方法可以出於內存緩存的目的來鏈接容器/實例,那也將有所幫助。

你有沒有嘗試過

kubectl get pods -o wide

這還會返回容器的IP地址。 由於這不會返回所有describe返回的信息,因此可能更快。

對於描述的用例,您應該使用服務。 無頭服務將允許您使用my-svc.my-namespace.svc.cluster.local引用它們。 假設您不需要知道單個節點,只需知道如何到達其中一個節點,因為它將在它們之間循環。

如果您確實需要將群集中的固定網絡身份附加到Pod,則可以設置一個StatefulSet並使用以下內容引用它們: app-0.my-svc.my-namespace.svc.cluster.localapp-1.my-svc.my-namespace.svc.cluster.local等。

您永遠不需要以其他方式聯系特定的Pod ip,尤其是因為可以隨時重新安排它們的IP並更改其IP。

對於您的用例而言,僅使用memcache舵圖可能更容易,該舵圖支持StatefulSet中的集群: https : //github.com/kubernetes/charts/tree/master/stable/memcached

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM