如何使用gcloud查找我的Dataproc集群所在的区域?

jam*_*iet 4 gcloud google-cloud-dataproc

如果我发出gcloud dataproc clusters list0,则列出以下群集:

$ gcloud dataproc clusters list
Listed 0 items.
Run Code Online (Sandbox Code Playgroud)

但是,如果指定区域,则会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
Run Code Online (Sandbox Code Playgroud)

我猜测无法获得群集列表而不指定--region是我的组织管理员做出的决定的结果,但是我希望可以找到解决方法。我可以访问https://console.cloud.google.com/并查看项目中所有集群的列表,我可以使用gcloud吗?只能访问https://console.cloud.google.com/以便发出问题gcloud dataproc clusters list --region europe-west1似乎有点限制。

Den*_*Huo 5

基础区域服务在设计上是彼此隔离的,因此没有单个URL返回组合列表(因为这将是全局依赖性和故障模式),不幸的是,目前gcloud库的布局是如此列出dataproc群集或作业时,没有选择为“所有区域”指定区域列表或简写的选项。

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

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

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

为了方便起见,您也可以添加global一个for循环:

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