Я хотел бы получить текущий идентификатор проекта GKE из одного из его кластеров через клиент Java или сам GCloud API.
ClusterManagerClient
соответствующим ClusterManagerSettings
-> Можно ли получить этот конкретный идентификатор проекта с помощью этого клиента?
(Я ожидаю, что в каждом кластере GKE будет глобальный контекст, где мы сможем узнать текущий проект, над которым мы работаем).
Спасибо
Большое спасибо!
Как упомянул Джон Хэнли в своем комментарии выше, вы можете использовать метаданные экземпляра на узле в вашем кластере, чтобы определить проект, частью которого является узел. Самый простой способ увидеть это — использовать 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-запрос, если вы добавите правильные заголовки (как показано выше), поскольку вы не нужна какая-либо специальная аутентификация/авторизация клиента для доступа к локальным метаданным.
Большое спасибо, очень приятно!
Эта информация хранится в метаданных: cloud.google.com/compute/docs/storing-retrieving-metadata Однако фактический ответ зависит от вашей настройки: cloud.google.com/kubernetes-engine/docs/how-to/…