簡體   English   中英

從內部運行的應用程序讀取k8s pod的IP

[英]Read IP of k8s pod from application running inside it

我有兩個運行的k8s吊艙。 每個吊艙內部都有一個容器。 我的應用程序將在每個容器中運行。 我想直接從Pod1中的應用程序到Pod2中的應用程序進行HTTP調用。

假設我在集群外部擁有某種持久性存儲。 所以我的邏輯看起來像這樣。

App in Pod1 -> get Pod1 IP address -> save to external storage

App in Pod2 -> read Pod1 IP address from storage -> complete HTTP call to App1 in Pod1

如何從應用程序中獲取此IP地址。 我正在使用Java(播放框架)。

您可以通過在Pod清單中放置類似以下內容的方式,將Pod IP(或Pod描述符的任何其他屬性)暴露給Pod的環境變量:

env:
- name: MY_POD_IP
  valueFrom:
    fieldRef:
      fieldPath: status.podIP

話雖如此,Yonah的答案很可能是您真正需要的。 服務發現是Kubernetes中的頭等公民。

在kubernetes中,有一個稱為服務的概念專門針對您要使用的目的而構建。 例如,部署在kubernetes中的前端和后端都可以使用服務名稱相互訪問。 在您的情況下,為兩個Pod創建服務,您應該可以從任何其他Pod訪問您的Pod。 除了這種好處,服務還具有更多好處,應該使用。 https://kubernetes.io/docs/concepts/services-networking/service/祝您好運!

暫無
暫無

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

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