通过Kubernetes自动发现在Hazelcast上获取节点的“ pod name”值

问题描述 投票:0回答:1

在基于Hazelcast的系统中,该系统部署在Kubernetes上,使用service-label的自动发现,我试图获取每个节点都部署在的Pod name。我得到的确实是第一个节点的pod名称,但是第二个节点的服务名称。例如,octane-deployment-blue-123c44bfb-xyzab(pod),然后是10-20-30-100.my-service.svc.cluster.local(服务)。

我通过以下方式获取值

HazelcastInstance hazelcastInstance = getInstance();
Member localMember = hazelcastInstance.getCluster().getLocalMember();
String name = localMember.getSocketAddress().getAddress().getHostName();

似乎名称是由自动发现机制确定的。

获得此值的任何方法吗?

kubernetes hazelcast kubernetes-pod autodiscovery
1个回答
2
投票

如何获得Pod名称的简单答案是跳过所有的Hazelcast部分,而仅从env变量HOSTAME或使用Downward API这样获得Pod名称:

env:
- name: MY_POD_NAME
  valueFrom:
    fieldRef:
      fieldPath: metadata.name

说,您很奇怪地通过执行localMember.getSocketAddress().getAddress().getHostName()来接收服务名称。对我来说似乎是个虫子。您可以在此处复制步骤提出问题:https://github.com/hazelcast/hazelcast-kubernetes

© www.soinside.com 2019 - 2024. All rights reserved.