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

Fetch the zone of the master node from a pod in container engine

用于多区域、多集群设置。是否可以从 pod 动态公开或检索主节点 运行ning 所在的区域?由于这是将我们的指标正确推送到 stackdriver 所必需的,以便 运行 horizontal pod autoscaler 基于它们。

我可以在单独的部署中对其进行硬编码,但我想避免这种情况。

我试过查看计算内部元数据端点,在 reference variables kubernetes 中有,但 none 似乎暴露了主区域。

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

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