[英]How to get Java Heap Dump from a Kubernetes Pod using jmap?
[英]How to Get Current Pod in Kubernetes Java Application
我正在Kubernetes集群上部署微服務。 每個應用程序都有4個副本或PODS。 對於1個應用程序中的REST API,我想跟蹤哪個POD解決了我的請求。 例如,我的/app/deploy(body contains app_id)
請求由POD1
處理。
同樣,我在應用程序中導入了Kubernetes jar。 在我的代碼中,我想檢查運行此代碼的當前POD。 我想要像kubernetesDiscoveryClient.getCurrentPOD()
這樣的API。
您的Java應用程序中不需要Kubernetes Jar。 一個簡單的System.getenv("HOSTNAME")
將為您提供Pod的名稱。 至少在Kubernetes 1.6版以上的平台上均可使用。
更正式地說,您可以在Kube規范( 詳細參考 )中使用以下內容,然后使用Java中的System.getenv("MY_POD_NAME")
讀取環境。
env:
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
每個pod的hostname
與pod_name
相同。 因此,您可以做的是,編寫一個返回hostname
的api。
例:
在Java中 java.net.InetAddress.getLocalHost();
在C# System.Environment.GetEnvironmentVariable("COMPUTERNAME");
這對我有用。
podName = Optional.ofNullable(System.getenv("HOSTNAME"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.