SID*_*SID 12 java spring-boot kubernetes
我正在 Kubernetes 集群上部署我的微服务。每个应用程序都有 4 个副本或 PODS。对于 1 个应用程序中的 REST API,我想跟踪哪个 POD 解决了我的请求。例如,我的/app/deploy(body contains app_id)请求由POD1.
同样,我在我的应用程序中导入了 Kubernetes jar。在我的代码中,我想检查运行此代码的当前 POD。我想要一个像这样的 API kubernetesDiscoveryClient.getCurrentPOD()。
Blo*_*ock 15
您的 Java 应用程序中不需要 Kubernetes Jar。一个简单的System.getenv("HOSTNAME")会给你你的 Pod 的名称。适用于所有平台,至少从 Kubernetes 1.6 版开始。
更正式地,您可以在您的 Kube 规范(详细参考)中使用以下内容,然后阅读System.getenv("MY_POD_NAME")Java 中使用的环境。
env:
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
Run Code Online (Sandbox Code Playgroud)
这对我有用。
podName = Optional.ofNullable(System.getenv("HOSTNAME"));
Run Code Online (Sandbox Code Playgroud)
每个 pod 都有一个hostname相同的pod_name. 所以你可以做的是,编写一个返回你的api hostname。
例子:
在 Java 中
java.net.InetAddress.getLocalHost();
在 C# 中
System.Environment.GetEnvironmentVariable("COMPUTERNAME");
| 归档时间: |
|
| 查看次数: |
5373 次 |
| 最近记录: |