如何使用gcloud查找数据堆簇所在的区域?

时间:2018-03-21 22:41:22

标签: gcloud google-cloud-dataproc

如果我发出gcloud dataproc clusters list列出0个群集:

$ gcloud dataproc clusters list
Listed 0 items.

但是,如果我指定区域gcloud dataproc clusters list --region europe-west1,我会返回一个群集列表:

$ gcloud dataproc clusters list --region europe-west1
NAME                WORKER_COUNT  STATUS   ZONE
mydataproccluster1  2             RUNNING  europe-west1-d
mydataproccluster2  2             RUNNING  europe-west1-d

我猜测无法在未指定--region的情况下获取群集列表是我的组织管理员做出决定的结果,但我希望有一个绕过它。我可以访问https://console.cloud.google.com/并查看项目中所有群集的列表,我可以使用gcloud获得相同的内容吗?必须访问https://console.cloud.google.com/才能发出gcloud dataproc clusters list --region europe-west1似乎有点限制。

2 个答案:

答案 0 :(得分:4)

底层区域服务是按设计隔离的,因此没有单个URL返回组合列表(因为这将是全局依赖和故障模式),不幸的是,目前gcloud的布局库是这样的,当列出数据堆集群或作业时,没有选项可以指定“所有区域”的区域列表或简写。

但是,您可以通过从Compute API获取可能的区域堆栈列表来解决此问题:

gcloud compute regions list --format="value(name)" | \
    xargs -n 1 gcloud dataproc clusters list --region

唯一一个与Compute区域之一不匹配的数据区域是特殊的“全局”Dataproc区域,它是一个跨越所有计算区域的独立Dataproc服务。

为方便起见,您还可以将global添加到for循环中:

for REGION in global $(gcloud compute regions list --format="value(name)"); do gcloud dataproc clusters list --region ${REGION}; done

答案 1 :(得分:1)

必须指定$objWord.quit() 是gcloud中Dataproc命令组的工作原理。开发人员控制台问题列出了针对所有区域的请求(您可以{gccoud request执行相同操作)。

或者,您可以使用--region mutiregion(这是gcloud默认值)。这将与您的组织策略良好互动。如果您的组织具有受区域限制的VM位置,您将能够在欧洲创建VM,但在其他地方执行此操作时会出错。