#kubernetes #google-cloud-platform #binding #google-cloud-iam #workload-identity
#kubernetes #google-облачная платформа #привязка #google-cloud-iam #рабочая нагрузка- идентификатор
Вопрос:
Я планирую задания с помощью Cloud Composer, выполняющего задачи в Kubernetes. Я настроил новый пул узлов в том же GKE, что и composer, и использую его для выполнения задач Kubernetes. В этом пуле узлов я использую учетную запись службы по умолчанию, но привязываю учетную запись к той же учетной записи службы, что и пул узлов Composer, используя привязку политики IAM и включив идентификатор рабочей нагрузки.
Однако из ошибок я вижу, что учетной записи службы kubernetes не хватает разрешений для некоторых вещей, к которым имеет доступ учетная запись службы composer. Что не имеет смысла, поскольку учетная запись службы kubernetes имеет привязку политики IAM к учетной записи службы composer, поэтому у них должны быть точно такие же разрешения. Но по какой-то причине это неверно. Любые советы о том, где искать, очень ценятся…
Комментарии:
1. Вы используете предопределенные роли или пользовательские роли? Вы как-то изменили разрешения по умолчанию в GCP? Не могли бы вы поделиться своей точной ошибкой?
2. При привязке ролей вы предоставляете определенные SA / предопределенные роли, которые можно найти для Cloud Composer и Kubernetes engine . Каждая роль имеет разные разрешения. Какие роли вы использовали и какой роли вам не хватает?
3. Просмотрев журналы учетных записей служб, я заметил, что, хотя идентификатор рабочей нагрузки был включен в GKE, он не был включен в пуле узлов, поэтому узлы в этом пуле по умолчанию использовали неправильную учетную запись службы…
4. Короче говоря, вам просто нужно было включить
Workload Identity
пулы узлов, как указано в этом документе ? Если да, не могли бы вы написать ответ для людей с подобной проблемой?5. У вас все еще есть эта проблема или включение идентификатора рабочей нагрузки решило вашу проблему?
Ответ №1:
Решением было включение идентификатора рабочей нагрузки в пуле узлов. При использовании terraform решение выглядит следующим образом:
resource "google_container_node_pool" "google_container_node_pool_name" {
workload_metadata_config {
mode = "GKE_METADATA"
}