为了账号安全,请及时绑定邮箱和手机立即绑定

谷歌云go sdk中projectslocation和projectszone功能/类型之间的区别

谷歌云go sdk中projectslocation和projectszone功能/类型之间的区别

Go
湖上湖 2023-08-14 15:08:47
浏览 go cloud sdk 的容器包,我们发现可用资源主要有两种不同类型的类型和方法:项目位置,例如ProjectsLocationsClustersCreateCall项目区域 例如 ProjectsZonesClustersAddonsCall他们有什么区别?只是为了记录,我正在寻找人们必须遵循的模式,以便a) 它传递(以某种方法?)项目 IDb) 它检索属于该项目的所有可用 GKE 集群
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

Go container/v1API 是从底层 Google Kubernetes Engine (GKE) REST API(公共文档)生成的,它支持按区域或按位置查询集群。检查这些文档,您会发现大多数建议都是使用位置 API。尽管特定于区域的 API 仍然可用于向后兼容,但不推荐使用任何按区域进行的过滤等操作:

https://img3.sycdn.imooc.com/64d9d3240001f5a806470118.jpg

根据我的记忆,我认为在宣布支持区域GKE 集群时,添加了按位置搜索集群的功能;此类集群的控制平面在多个区域之间共享,以实现高可用性目的,并且提供了一个 API,该 API 可在区域和区域集群上通用。


为了通过API调用获取项目中的所有集群,根据您的请求,您可以使用方法location的字段(*container.ProjectsLocationsClustersService).List来对底层API进行这样的调用:


projectID := "my-project-id" // TODO fill in project ID

svc, err := container.NewService(context.TODO())

// TODO: handle err

parent := fmt.Sprintf("projects/%s/locations/-", projectID) // Location "-" matches all zones and regions

resp, err := svc.Projects.Locations.Clusters.List(parent).Do()

// TODO do something with response and error

有关参数结构parent和 List 调用行为的更多详细信息,请参阅 API 文档。


区域 API 将支持在查询所有区域时列出区域集群(将参数设置zone为-)。但是,由于它仅接受区域参数作为其 List 方法中的过滤器,因此它不提供过滤特定区域中的区域集群的功能。同一 API 的其他端点也有类似的限制。


查看完整回答
反对 回复 2023-08-14
  • 1 回答
  • 0 关注
  • 58 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信