Почему так сложно использовать команды gcloud с моего главного компьютера вместо интерактивной оболочки gcloud? - PullRequest
1 голос
/ 17 апреля 2019

Может быть, я немного запутался, но в основном я пытаюсь установить свой рабочий процесс, используя gcloud cli через мой собственный хост-терминал (Mac), а не предоставленную интерактивную оболочку gcloud.

Я аутентифицируюсь с членом IAM, выполнив:

gcloud auth login

Он переходит на страницу входа в Google Cloud, с которой я успешно проходил аутентификацию, а затем в своей оболочке я получаю следующее:

You are now logged in as [MY_EMAIL@gmail.com].
Your current project is [myproperty-1537056464248].  You can change this setting by running:

  $ gcloud config set project PROJECT_ID

После этого я пытаюсь выполнить следующую команду:

gcloud container clusters create somename

И я получаю следующее сообщение об ошибке:

ERROR: (gcloud.container.clusters.create) ResponseError: code=400, message=Project "myproperty-1537056464248" has no network named "default".

Мой пользователь IAM имеет следующие роли:

  • Kubernetes Engine Cluster Admin
  • Owner

Все, что я хочу сделать, это избегать использования интерактивной оболочки gcloud, чтобы я мог:

  1. Создание кластеров через командную строку
  2. Сборки Push Docker в Реестр контейнеров Google
  3. Список кластеров
  4. Создание модулей
  5. и т.д ...

Но эти политики IAM на самом деле не работают так, как я ожидаю.

Должен ли я использовать учетную запись службы?

1 Ответ

2 голосов
/ 18 апреля 2019

Вы столкнулись с двумя различными ошибками:

  1. В первом сообщении об ошибке говорится, что в вашем проекте отсутствует сеть по умолчанию.

Вы можете проверить сети вашего проекта с помощью:

$ gcloud compute networks list
NAME     SUBNET_MODE  BGP_ROUTING_MODE  IPV4_RANGE  GATEWAY_IPV4
default  AUTO         REGIONAL

Если вы создаете полностью новый проект, он должен иметь сеть по умолчанию.

Или вы можете указать существующую сеть с помощью:

gcloud container clusters create somename --network=put-existing-network-here
2-ая ошибка - отсутствие разрешения 'compute.networks.get' в проекте.

Вы можете проверить фактические роли в проекте, используя 'gcloud projects get-iam-policy PROJECT_ID'.Найдите роль владельца для вашего пользователя IAM, например:

$ gcloud projects get-iam-policy PROJECT_ID
- members:
  - user:username@somedomain.com
  role: roles/owner
...