我想通过Java客户端或GCloud API本身从其集群之一中获取当前的GKE项目ID。
ClusterManagerClient
初始化ClusterManagerSettings
->是否可以通过此客户端获取此特定项目ID?
(我希望每个GKE集群中都有一个全局上下文,我们可以知道我们正在运行的当前项目)。
谢谢
答案 0 :(得分:2)
正如John Hanley在上面的评论中提到的那样,您可以在集群中的节点上使用实例元数据来确定该节点所属的项目。最简单的查看方法是使用外壳的卷曲(在节点上或在容器中)。
如果需要项目名称,可以在以下位置看到它:
curl "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google"
如果您需要项目编号,可以在以下位置看到它:
curl "http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id" -H "Metadata-Flavor: Google"
这不是容器API表面的一部分,因此ClusterManagerClient
不是正确的API客户端。您需要创建一个客户端来获取实例元数据,我希望这可能是计算客户端库的一部分,或者如果您添加了正确的标头(如上所示),那么您就可以发出本地HTTP请求,因为您没有需要任何特殊的客户端身份验证/授权才能访问本地元数据。