我使用服务帐户
创建一个google计算实例gcloud --project my-proj compute instances create test1 \
--image-family "debian-9" --image-project "debian-cloud" \
--machine-type "g1-small" --network "default" --maintenance-policy "MIGRATE" \
--service-account "gke-build-robot@myproj-184015.iam.gserviceaccount.com" \
--scopes "https://www.googleapis.com/auth/cloud-platform" \
--tags "gitlab-runner" \
--boot-disk-size "10" --boot-disk-type "pd-standard" --boot-disk-device-name "$RESOURCE_NAME" \
--metadata register_token=mytoken,config_bucket=gitlab_config,runner_name=test1,gitlab_uri=myuri,runner_tags=backend \
--metadata-from-file "startup-script=startup-scripts/prepare-runner.sh"
通过ssh:gcloud compute --project "myproj" ssh --zone "europe-west1-b" "gitlab-shared-runner-pool"
安装并配置docker机器后。我尝试创建实例:
docker-machine create --driver google --google-project myproj test2
Running pre-create checks...
(test2) Check that the project exists
(test2) Check if the instance already exists
Creating machine...
(test2) Generating SSH Key
(test2) Creating host...
(test2) Opening firewall ports
(test2) Creating instance
(test2) Waiting for Instance
Error creating machine: Error in driver during machine creation: Operation error: {EXTERNAL_RESOURCE_NOT_FOUND The resource '1045904521672-compute@developer.gserviceaccount.com' of type 'serviceAccount' was not found. []}
1045904521672-compute@developer.gserviceaccount.com是我的默认帐户。 我不明白为什么用它。因为激活是gke-build-robot@myproj-184015.iam.gserviceaccount.com
gcloud config list
[core]
account = gke-build-robot@myproj-184015.iam.gserviceaccount.com
disable_usage_reporting = True
project = novaposhta-184015
Your active configuration is: [default]
gcloud auth list
Credentialed Accounts
ACTIVE ACCOUNT
* gke-build-robot@myproj-184015.iam.gserviceaccount.com
有人能解释我,我做错了吗?
答案 0 :(得分:2)
有双重问题。
scope
参数,无法获取具体参数
因此,安装docker + machine的实例可以使用指定的sa
正常工作。 但是使用docker + machine创建的实例必须具有默认服务帐户
在调试期间,我将其关闭
结果我收到了这个错误。答案 1 :(得分:0)
类似的问题(bosh-google-cpi-release issue 144)暗示
此错误消息不清楚,特别是因为还需要在清单中指定的凭据可能与另一个帐户完全关联。
service_account
的默认bosh-google-cpi-release
设置为“default
”,如果它不是由波什清单主动设置的,那么只要您使用service_scopes
,就会发生这种情况而不是service_account
。
在您没有使用bosh-google-cpi-release
时,最后一句话让我仔细检查了gcloud
reference page,特别是gcloud compute instance create
。
服务帐户是附加到实例的标识。其访问令牌可以通过实例元数据服务器访问,并用于验证实例上的应用程序 该帐户可以是电子邮件地址,也可以是与服务帐户对应的别名。您可以使用“
default
”别名明确指定计算引擎默认服务帐户。如果未提供,该实例将获得项目的默认服务帐户。
就好像您的服务帐户被忽略或不正确(并且回退到项目默认的帐户)
请参阅“Creating and Enabling Service Accounts for Instances”以仔细检查其值:
通常,服务帐户的电子邮件来自服务帐户ID,格式为:
[SERVICE-ACCOUNT-NAME]@[PROJECT_ID].iam.gserviceaccount.com