Получить зону мастер-узла из пода в движке контейнера

Для многозонной установки с несколькими кластерами. Можно ли динамически отображать или извлекать зону, в которой работает главный узел, из модуля? Поскольку это необходимо для правильной передачи наших метрик в stackdriver, чтобы запустить горизонтальное автомасштабирование пакетов на их основе.

Я могу жестко закодировать его в отдельных развертываниях, но я бы хотел этого избежать.

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


comment
Обратите внимание, что мастера могут быть региональными (например, в формате us-central1) и могут не соответствовать формату зоны (например, us-central1-b), поскольку GKE теперь поддерживает мастеров с несколькими зонами. Поэтому для некоторых кластеров вам может потребоваться посмотреть на поле, отличное от зоны, для ответа @Robert ниже.   -  person Ahmet Alp Balkan    schedule 04.01.2018


Ответы (1)


Существует неофициальный способ определить, в какой зоне (или регионе) работает мастер, анализируя запись метаданных kube-env на узле. kube-env — это хранилище ключей и значений, где все ключи в верхнем регистре, за которыми следует двоеточие, за которым следует значение. Если вы ищете ключ ZONE, значением будет расположение кластера (например, главная зона для многозональных кластеров с одной главной зоной или главный регион для региональных кластеров).

Обратите внимание, что это не поддерживаемый API, поэтому он может исчезнуть в будущих версиях GKE, но на данный момент это простой способ получить расположение кластера с любого узла.

person Robert Bailey    schedule 21.12.2017