EKS - 从 pod 内部获取 pod 部署的可用区。

0

【以下的问题经过翻译处理】 在我的EKS集群中,我有几个节点组覆盖可用区A和B。运行在节点上的Pod是各种Kafka主题(MSK)的消费者/生产者。Pod之间没有内部通信。

我在MSK集群中有两个代理,其中有一个在每个可用区中给pod使用。

我担心由于Pod可以部署在任何可用区,因此我可能会无意中被收取可用区之间传输的数据的费用,因为Pod对其要与哪个代理进行通信没有偏好。

为了避免这种情况,我考虑让Pod在启动后选择要与之通信的代理服务器,并且为此,它需要知道已部署的基础节点所在的可用区。

我原本认为可以像任何其他规范字段一样从部署中获取区域信息,例如https://docs.microsoft.com/zh-cn/answers/questions/330925/how-can-a-pod-know-which-availability-zone-it-locates-in-when-deployed-in-a-kubernetes-cluster.html,但那不是有效的字段。

我尝试过像下面链接中提到的那样访问ec2元数据ip地址,但由于它是在节点上具有自己IP的Pod,我假设此机制不起作用:https://www.quora.com/How-do-I-find-out-in-which-availability-zone-a-AWS-EC2-server-is

列在https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#podspec-v1-core中的字段都似乎没有任何可识别这一点的字段。

有没有什么方法可以做到这一点?或者有更好的方法来联网Pod/节点组?

profile picture
专家
已提问 6 个月前32 查看次数
1 回答
0

【以下的回答经过翻译处理】 EC2实例元数据服务v2可用于获取AZ详细信息。Amazon EKS支持使用IMDSv2格式访问实例元数据的容器。https://aws.amazon.com/about-aws/whats-new/2020/08/amazon-eks-supports-ec2-instance-metadata-service-v2/

profile picture
专家
已回答 6 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则