我正在将应用程序移植到Azure,该应用程序是为Amazon Fargate设施开发的。 Fargate的功能是能够创建私有DNS区域,并使它创建的服务名称自动在该区域注册。这样,任何Fargate服务以及同一VPC /子网中的其他VM都可以使用service-name.zone-name
来按名称引用服务。
这对于我们在产品中运行的VM尤其有用,因为它们可以通过其自动生成的私有DNS名称直接对在Fargate中运行的微服务进行REST调用。
我们在Azure实施中使用AKS,我发现kubernetes通过创建格式为service-name.namespace
的记录映射到服务的群集IP,为其管理的容器提供了类似的机制。在kubernetes网络中这可以正常工作,但是我们在同一虚拟网络中运行的任何VM都不知道这些AKS服务别名。
所以我的问题是:是否有一种方法可以利用Azure的私有DNS功能并将其绑定到AKS中,以便位于同一虚拟网络中的VM也可以通过名称而不是IP地址来引用Kubernetes服务。 ?
答案 0 :(得分:1)
您可以为此使用external-dns。诀窍是使用可用的here舵图并将publishInternalServices=true
添加到values.yaml中。这样,ClusterIP的服务将被添加到您的内部Azure DNS区域。