Azure流量管理器上的AKS入口端点

Azure流量管理器上的AKS入口端点,azure,kubernetes,nginx-ingress,azure-aks,azure-traffic-manager,Azure,Kubernetes,Nginx Ingress,Azure Aks,Azure Traffic Manager,我在AKS集群上部署了多个微服务,并在nginx入口控制器上公开了它。指向dns为blabla.eastus.azure.com的静态ip的入口 应用程序在blabla.eastus.azure.com/Application/和blablabla.eastus.azure.com/application2/…上公开。。等等 我已经在Azure的blabla.trafficmanager.net中创建了流量管理器配置文件。我应该如何在traffic manager中配置AKS入口,以便traff

我在AKS集群上部署了多个微服务,并在nginx入口控制器上公开了它。指向dns为blabla.eastus.azure.com的静态ip的入口

应用程序在blabla.eastus.azure.com/Application/和blablabla.eastus.azure.com/application2/…上公开。。等等

我已经在Azure的blabla.trafficmanager.net中创建了流量管理器配置文件。我应该如何在traffic manager中配置AKS入口,以便traffic manager将请求重新路由到部署在AKS入口上的应用程序

---Ingress.yaml configuration used
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  namespace: ns
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
  - host: blabla.eastus.azure.com
    http:
      paths:
      - backend:
          serviceName: application1
          servicePort: 80
        path: /application1(/|$)(.*)
      - backend:
          serviceName: application2
          servicePort: 80
        path: /application2(/|$)(.*)
      - backend:
          serviceName: aks-helloworld
          servicePort: 80
        path: /(.*)
当我点击curl
http://blabla.trafficmanager.net
响应为默认后端-404

当我将主机更新为
http://blabla.trafficmanager.net
,我可以通过\application1访问应用程序


创建的任何自定义cname也是如此。我创建了一个名为custom.domain.com的cname,并将其重定向到blabla.eastus.azure.com。因此,除非我将ingress中的主机直接更新到custom.domain.com,否则我无法通过自定义域访问它

,实际请求将永远不会通过Traffic Manager传递。Traffic Manager是Azure提供的基于DNS的负载平衡解决方案

当您浏览Azure TM端点时,它会解析并为您提供IP。然后您的浏览器请求该IP地址

在您的情况下,AKS应该有一个公共端点,TM可以解析DNS查询。您还需要创建一个CNAME记录,以将TM FQDN映射到您的自定义域。如果不这样做,您将得到404


上面提到的自定义头设置是针对探测器的,但实际请求将从客户端浏览器发送到TM解析到的端点/IP

实现您需求的一种方法是严格控制每个区域中公共DNS和入口控制器公共IP之间的流量;代表 将服务发布到HTTP SNI协议的灵活性:

为了简单起见,入口控制器没有任何分配给其公共IP的DNS记录

因此,我们将按照图从右到左实现该体系结构

流量管理器将有两个端点:每个区域一个端点。每个端点的值将是对应的入口公共IP

DNS服务将app.mydomain.com的CNAME(别名)配置为mine-apps.trafficmanager.net

这样,连接到app.mydomain.com的客户端将解析Traffic Manager(TM)服务,该服务是一个地理DNS,并且基于客户端的IP,将返回到客户端a和B之间较近的目标区域

同样,您可以使用URL或基于路径的路由通过入口公开服务,并控制客户端如何连接到这些服务。只需确保您的DNS知道如何连接到流量管理器。其余的都会处理 神奇地由TM和库伯内特斯的入口物体


最后但并非最不重要的一点是,一旦正确配置了所有集成,并且它们满足了您的主要需求,您就可以开始扩展现有的体系结构并适应您的实际需求;例如:清除流量管理器端点中的静态IP。

您真的需要流量管理器吗?入口可以做基于路径的路由。我有类似的问题。您找到解决方案了吗?我有两个AKS集群,位于两个区域,分别拥有自定义域aks1.xyz.com和aks2.xyz.com的ngnix入口LB。我在每个集群上有两个服务A和B,可通过入口主机aks1.xyz.com和aks2.xyz.com在每个集群上的相对路径/srv-A和/srv-B单独访问。我在Azure Traffic Manager中添加了这些自定义域,配置为在端口443和path/healthz上探测。端点在线,但我无法通过映射到xyz.trafficmanager.net的TM自定义域xyz.com访问服务。请建议!!