场景:我们在K8s集群外部有一个客户机试图访问托管在K8s集群中的K8s服务。客户端和服务都是Azure中相同VNET的一部分。我们希望使用client-side load balancing来访问这个GRPC服务。
K8s集群的设置:我们的K8s集群托管在Azure中,并使用Azure CNI网络模型,因此这意味着集群中的pods具有来自VNET的IP地址空间的IP地址。请注意,我们没有使用AKS,而是自托管K8s集群,但在我看来,这个问题不应该依赖于此。
问题
client-side load balancing来访问这个GRPC服务。如果我们的客户机和服务器同时存在于K8s集群中,那么我们可以使用K8s headless service获取IP地址列表。但是在这种情况下,由于客户端在K8s集群之外,我们正在寻找如何检索K8s集群之外的IP地址的解决方案?谢谢你的帮忙!
发布于 2022-04-04 23:43:50
我发现我可以用扩展DNS来解决这个问题。在将我的集群连接到外部DNS (这是链接到Azure私有DNS区域)之后,我创建了一个headless service,并发现在部署此服务时,在Azure私有DNS区域中创建了DNS记录。我只需对服务的DNS名称进行DNS查找,就可以获得豆荚的IP地址列表。
https://stackoverflow.com/questions/71557899
复制相似问题