我要将最初为AWS Fargate容器服务开发的应用程序移植到Azure下的AKS。在AWS实现中,将创建一个应用程序负载平衡器,并将其放置在UI微服务的前面。该负载均衡器配置为使用签名证书,从而允许https访问我们的后端。

我已经对此主题进行了一些搜索,以及如何在AKS中配置类似的内容。对于各种相似的问题,我已经找到了许多不同的答案,但没有一个正是我所要寻找的。据我了解,Azure中没有与AWS方法完全相同的方法。 AWS解决方案中的不同之处在于,您可以预先创建一个应用程序负载平衡器,并将其配置为使用证书,然后为后端UI微服务配置一个https监听器。

在Azure情况下,当您发出“az aks create”命令时,将自动创建负载均衡器。似乎没有办法进行大量配置,尤其是与证书有关的配置。我的印象是,AKS创建的默认负载均衡器最终不是用于此目的的机制。另一个选项可能是应用程序网关,如here所述。我不确定如何使此讨论适应AKS。 UI Pane 必须是通过应用程序网关的任何流量的最终目标,但是网关使用的子网与AKS集群中用于Pod的子网不同。

所以我不确定如何进行。我的问题是:应用程序网关是提供HTTP访问AKS集群中运行的UI的正确解决方案,还是我需要使用另一种方法?

最佳答案

没错,AKS创建的默认负载均衡器是第4层LB,并且不支持SSL卸载。相当于Azure中AWS应用程序负载均衡器的是Application Gateway。截至目前,AKS中没有选项可以选择应用程序网关,而不是经典的负载均衡器,但是就像alev所说的那样,还有一个ongoing project仍在预览中,这将允许部署一个特殊的入口 Controller 来驱动路由基于您的入口规则的外部Application Gateway上的规则。如果您确实需要可以投入生产的产品,则可以选择以下选项:

  • 部署NGINXTraefik等Ingress Controller ,并使用cert-manager生成证书。
  • 创建一个应用程序网关并管理您自己的路由规则,该规则将指向默认的第4层LB(k8s LoadBalancer服务或通过入口 Controller )

  • 我们最近实现了类似的操作,因此决定管理自己的应用程序网关,因为我们想在群集外部进行SSL卸载,并且因为我们需要应用程序网关的WAF功能。我们能够自动管理部署管道中的路由规则。当生产准备就绪时,我们可能会将Application Gateway用作入口项目。

    关于azure - 配置AKS负载均衡器以进行HTTPS访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53383614/

    10-16 04:13