Я настраиваю высокодоступный кластер kubernetes, используя GKE и terraform.Несколько кластеров будут выполнять несколько развертываний в кластере, и я ожидаю, что большинство развертываний будет в настраиваемом пространстве имен, главным образом по причинам изоляции.
Один из наших открытых вопросов - как управлять учетными записями служб GCP в кластере..
Я могу создать кластер с настраиваемой учетной записью службы GCP и настроить разрешения, чтобы он мог извлекать изображения из GCR, вести журнал на стек-драйвер и т. Д. Я думаю, что эта учетная запись настраиваемой службы будет использоваться узлами GKE.вместо учетной записи службы вычислений по умолчанию.Пожалуйста, исправьте меня, если я ошибаюсь в этом вопросе!
Каждому развертыванию необходим доступ к разному набору ресурсов GCP (облачное хранилище, хранилище данных, облачное хранилище данных и т. Д.), И я бы хотел, чтобы каждое развертывание имелоэто собственная учетная запись службы GCP, поэтому мы можем контролировать разрешения.Я также хотел бы, чтобы запущенные модули не имели доступа к учетной записи службы GCP, доступной узлу, на котором запущены модули.
Возможно ли это?
Я рассмотрел некоторые варианты, но яЯ не уверен в целесообразности или желательности:
- Учетная запись службы GCP для развертывания может быть добавлена в кластер в качестве секрета kubernetes, развертывания могут смонтировать ее в виде файла и установить
GOOGLE_DEFAULT_CREDENTAILS
чтобы указать на него - Может быть, доступ к API метаданных для экземпляра может быть запрещен для модулей или может быть изменена учетная запись службы, возвращенная API метаданных?
- Может быть, есть GKE (илиkubernetes) родной способ управления учетной записью службы, представленной для pods?