Kubernetes 从容器引擎中的pod获取主节点的区域

Kubernetes 从容器引擎中的pod获取主节点的区域,kubernetes,google-cloud-platform,google-kubernetes-engine,stackdriver,google-cloud-stackdriver,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,Stackdriver,Google Cloud Stackdriver,对于多分区、多群集设置。是否可以从pod动态公开或检索主节点正在运行的区域?因为这是将我们的指标正确地推送到stackdriver所需要的,以便基于它们运行一个测试 我可以在单独的部署中硬编码,但我希望避免这种情况 我试着查看compute internal metadata endpoint,kubernetes中也有,但似乎没有一个公开主节点的区域。有一种非正式的方法,通过解析节点上的kube env元数据条目来确定主节点运行在哪个区域(或区域)kube env是一个键值存储,其中键都是大写

对于多分区、多群集设置。是否可以从pod动态公开或检索主节点正在运行的区域?因为这是将我们的指标正确地推送到stackdriver所需要的,以便基于它们运行一个测试

我可以在单独的部署中硬编码,但我希望避免这种情况


我试着查看compute internal metadata endpoint,kubernetes中也有,但似乎没有一个公开主节点的区域。

有一种非正式的方法,通过解析节点上的
kube env
元数据条目来确定主节点运行在哪个区域(或区域)
kube env
是一个键值存储,其中键都是大写,后跟冒号,冒号后跟值。如果您查找键
ZONE
,该值将是集群位置(例如,对于具有单个区域主节点的多区域集群,主区域或区域集群的主区域)


请注意,这不是一个受支持的API,因此它可能会在GKE的未来版本中消失,但现在它是一种从任何节点获取集群位置的简单方法

请注意,由于GKE现在支持多区域主机,因此主机可以是区域主机(即格式为
us-central1
),也可能不符合区域格式(即
us-central1-b
)。因此,对于某些集群,您可能需要查看不同于下面@Robert答案区域的字段。