Как программно получить идентификатор текущего проекта GKE из одного из его кластеров?

Я хотел бы получить текущий идентификатор проекта GKE из одного из его кластеров через клиент Java или сам GCloud API.

  • Я запускаю контейнеры Java в кластере GKE определенного проекта Google Cloud.
  • Я инициализирую ClusterManagerClient соответствующим ClusterManagerSettings

-> Можно ли получить этот конкретный идентификатор проекта с помощью этого клиента?

(Я ожидаю, что в каждом кластере GKE будет глобальный контекст, где мы сможем узнать текущий проект, над которым мы работаем).

Спасибо

Эта информация хранится в метаданных: cloud.google.com/compute/docs/storing-retrieving-metadata Однако фактический ответ зависит от вашей настройки: cloud.google.com/kubernetes-engine/docs/how-to/…

John Hanley 28.05.2019 22:10

Большое спасибо!

Vlad 28.05.2019 23:45
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
5
2
2 123
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как упомянул Джон Хэнли в своем комментарии выше, вы можете использовать метаданные экземпляра на узле в вашем кластере, чтобы определить проект, частью которого является узел. Самый простой способ увидеть это — использовать curl из оболочки (либо на узле, либо в контейнере).

Если вам нужно название проекта, его можно увидеть по адресу:

curl "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google"

И если вам нужен номер проекта, его можно увидеть по адресу:

curl "http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id" -H "Metadata-Flavor: Google"

Это не часть поверхности API контейнера, поэтому ClusterManagerClient не является правильным клиентом API для использования. Вам нужно создать клиент для извлечения метаданных экземпляра, который, как я ожидаю, может быть частью клиентских библиотек вычислений, или вы можете просто сделать локальный HTTP-запрос, если вы добавите правильные заголовки (как показано выше), поскольку вы не нужна какая-либо специальная аутентификация/авторизация клиента для доступа к локальным метаданным.

Большое спасибо, очень приятно!

Vlad 28.05.2019 23:45

Другие вопросы по теме