Как однозначно идентифицировать узел Kubernetes с помощью API Kubernetes и операционной системы узла? - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть 2 компонента, которые работают в среде Kubernetes. Один перечисляет все узлы в кластере (используя Kubernetes API), а другой сообщает подробности узла, на котором он работает, первому.

Я хочу, чтобы мой первый компонент совпадал с сообщаемым узлом второго компонент для узла в списке первого компонента.

Чтобы сделать это, мне нужно 2 вещи:

  1. Определение уникального значения для узла в кластере Kubernetes.
  2. Получите один и тот же идентификатор для узла из двух разных мест - API Kubernetes и от самого узла.

Идентификация узла:

Я пытаюсь определить узел Kubernetes. Но я все еще не могу получить уникальный идентификатор для узла.

Сначала я думал, что идентификатор машины поля уникален, но это не так (Скопировано при клонировании узла). Затем я создал формулу идентификации, состоящую из _.

. Эта формула не уникальна, но на данный момент она работает довольно хорошо.

Получение идентичного идентификатора узла с использованием 2 различных методов :

Довольно просто получить machine_id и имя хоста узла с помощью API Kubernetes, а также запустив команды в операционной системе узла. Проблема, с которой я сталкиваюсь, заключается в том, что в некоторых случаях идентификаторы не совпадают. В частности, имя хоста не является идентичным. Получение имени хоста с помощью API Kubernetes не возвращает реального имени хоста узла. Я сталкивался с этой проблемой на IKS и ICP.

Существует ли нормальный способ получить уникальный идентификатор для узла Kubernetes? Тот, который вернет тот же результат, запустив команду на узле и используя API?

1 Ответ

3 голосов
/ 20 апреля 2020

Вы должны использовать имя узла, как в названии объекта API. Вы можете передать его в процесс DaemonSet, используя env var с полем ref или нисходящим томом API.

...