Moh*_*ngh 2 java spring spring-boot kubernetes
我们有 Kubernetes 集群,其中每个服务运行 3 个 pod。我们有一个用例,我希望每个 pod 都知道其他 pod 的 IP。
For Example:
P1 --> this pod should know ip of itself, p2, p3 pod ip's
P2 --> this pod should know ip of itself, p1, p3 pod ip's
p3 --> this pod should know ip of itself, p2, p3 pod ip's
Run Code Online (Sandbox Code Playgroud)
我在谷歌上找到了这个,但看起来我们只获得了 Pod 本身的 IP,它不会提供其他两个正在运行的 Pod 的 IP。
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
Run Code Online (Sandbox Code Playgroud)
有没有办法可以在我的java代码中获取这些信息?
正如您提到的那样使用 env 可能还不够,因为 pod 应该是临时资源并可以添加和删除。
但下面的命令可以获取值
$kubectl get pods -o=jsonpath="{range .items[*]}{.status.podIP}{','}{end}"
Run Code Online (Sandbox Code Playgroud)
您没有提到 Pod 是否属于同一服务,但如果是这种情况(我认为),您可以使用选择器
$kubectl get pods -l="app=my-service" -o=jsonpath="{range .items[*]}{.status.podIP}{','}{end}"
x.y.z.a,b.c.d.e,
Run Code Online (Sandbox Code Playgroud)
这里的两个IP是xyza和bcde
您应该能够在相应的语言(java)api库中找到等效项
如果您可以让请求发送到任何 pod,您可以查看Kube DNS
| 归档时间: |
|
| 查看次数: |
9623 次 |
| 最近记录: |