我正在将一个最初为AWS Fargate容器服务开发的应用程序移植到Azure下的AKS。在AWS实现中,创建了一个应用程序负载均衡器,并将其放在UI微服务的前面。此负载均衡器配置为使用签名证书,允许https访问我们的后端。
我已经在这个主题上做了一些搜索,以及如何在AKS中配置类似的东西。对于各种类似的问题,我已经找到了很多不同的答案,但没有一个是我想要的。据我所知,Azure中的AWS方法没有确切的等价物。AWS解决方案的一个不同之处在于,您可以预先创建一个应用程序负载均衡器,并将其配置为使用证书,然后为后端UI微服务配置一个https侦听器。
在Azure的情况下,当你发出"az aks create“命令时,负载均衡器就会自动创建。似乎没有一种方法可以做太多的配置,特别是当它涉及到证书时。我的印象是,AKS创建的默认负载均衡器最终不是用于此的机制。另一种选择可以是应用网关,如here所述。我不确定如何使这个讨论适用于AKS。UI pod需要成为通过应用程序网关的所有流量的最终目标,但网关使用的子网与AKS集群中用于pod的子网不同。
所以我不知道该怎么做。我的问题是:应用程序网关是否是提供对AKS集群中运行的UI的https访问的正确解决方案,或者我需要使用其他方法?
发布于 2018-11-21 13:10:57
您说得对,AKS创建的默认负载均衡器是四层LB,不支持SSL卸载。相当于Azure中的AWS应用程序负载均衡器的是Application Gateway。到目前为止,AKS中还没有允许选择应用网关而不是经典负载均衡器的选项,但就像alev所说的,有一个ongoing project仍在预览中,它将允许部署一个特殊的入口控制器,该控制器将根据您的入口规则在外部应用网关上驱动路由规则。如果你真的需要可以投入生产的东西,下面是你的选择:
我们最近实现了一些类似的东西,我们决定管理我们自己的应用程序网关,因为我们想在集群外进行SSL卸载,也因为我们需要应用程序网关的WAF功能。我们能够在部署管道中自动管理路由规则。当应用程序网关准备好投入生产时,我们可能会将其用作入口项目。
发布于 2018-11-20 14:49:01
证书颁发和续订不是由入口处理的,但是使用cert-manager,您可以轻松地添加自己的CA,或者使用Let's encrypt在注释入口或服务对象时自动颁发证书。用于AKS的http_application_routing插件完全能够与证书管理器一起工作;甚至可以使用kube- (addon-http-application-routing-nginx-configuration命名空间中的ConfigMaps管理器进一步配置)。您还可以将对应用程序网关的初始支持视为入口here
https://stackoverflow.com/questions/53383614
复制相似问题