Получение значения "pod name" узла в Hazelcast с помощью автоматического обнаружения Kubernetes - PullRequest
0 голосов
/ 27 апреля 2020

В системе, основанной на Hazelcast, развернутой в Kubernetes с использованием автоматического обнаружения service-label, я пытаюсь получить Pod имя , на котором развернут каждый узел. Что я получаю, так это имя модуля для первого узла, но имя службы для второго. Например, octane-deployment-blue-123c44bfb-xyzab (pod), а затем 10-20-30-100.my-service.svc.cluster.local (service).

Я выбираю значения как

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

. Кажется, имя определяется автоматически механизм обнаружения.

Есть ли способ получить это значение?

1 Ответ

2 голосов
/ 27 апреля 2020

Простой ответ о том, как получить имя Pod, состоит в том, чтобы пропустить всю часть Hazelcast и просто получить имя Pod из переменной env HOSTAME или с использованием Downward API , например:

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

Сказав это, очень странно, что вы получаете имя службы, выполнив localMember.getSocketAddress().getAddress().getHostName(). Похоже, ошибка для меня. Вы можете поднять вопрос с шагами для воспроизведения здесь: https://github.com/hazelcast/hazelcast-kubernetes

...