Доступ к пространству имен (значению) kubernetes изнутри модуля - PullRequest
0 голосов
/ 04 августа 2020

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

Позвольте мне объяснить мой вариант использования. В пространстве имен моего приложения есть два модуля. Один модуль должен иметь состояние и иметь как минимум 3 реплики. Другой модуль (например, POD-A) может быть обычным развертыванием. Теперь POD-A должен поговорить с конкретным экземпляром набора состояний. Я читал в статье, что это можно сделать, используя такой формат адреса - <StatefulSet>-<Ordinal>.<Service>.<Namespace>.svc.cluster.local. В моем приложении часть пространства имен изменяется динамически при каждом развертывании. Так можно ли это значение считывать динамически из программы, работающей внутри модуля?

Пожалуйста, помогите мне, если я что-то неправильно понял. Также приветствуются любые альтернативные / более простые решения. Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 04 августа 2020

https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#the -downward-api есть пример этого и других.

    env:
    - name: MY_POD_NAMESPACE
      valueFrom:
        fieldRef:
          fieldPath: metadata.namespace
1 голос
/ 04 августа 2020

Вы можете получить пространство имен модуля, используя нисходящий API: https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#the -downward-api (смонтировать пространство имен как переменную среды).

Или, если serviceAcount смонтирован в модуле, пространство имен, в котором находится модуль, можно найти в файле: /var/run/secrets/kubernetes.io/serviceaccount/namespace.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...