据我所知,这是kubernetes可用网关的最完整的列表。从技术上来说,Ambassador不是ingress,可是它表现地已经很是好了。你可能已经看到了我制做的大表。nginx
下面有个链接能够打开并清晰的看到一个excel表格,包含了图表的详细内容,若是发现不正确的地方,请在文章末尾留言,我将及时修改。git
查看全表请点击这里。github
基于这些特色和我本身的经验、从别人的描述和其余相关文章中得知,我尝试着给每个网关提供了一些选择的参考条件。下面描述前后顺序没有特别含义。web
这多是最经常使用的ingress。安全、简单可靠。支持http、https和ssl termination。你可能还想经过它支TCP、UDP,可是从GitHub上提的issue来看,目前你最好别这样作。您能够得到一些良好负载均衡选项以及强大的路由,websocket支持,基础身份认证和追踪。算法
可是没有动态服务发现有点遗憾。有个配置生成器能够自动生成但仍是不太完美。安全
注意:咱们在这里谈论的内容有官方的Kubernetes ingress。还有来自Nginx公司的Ingress有些设置不同。微信
绝大多数的人认为Kong只是API网关。它有扩展插件系统使它的功能远远超出了正常ingress该有的功能。我不会使用它去作通用的负载均衡可是若是你想用它作API管理也是一个不错的选择。websocket
Traefik的功能多的让我惊讶。它的弹性伸缩功能很棒,并且咱们从不少博客上能够了解到它运行稳定。若是您当前正在使用ingress-nginx,那么为了让它支持动态配置将是一个很大的升级。事实上,没有理由让我不去用traefik。并且它应该会比如今更加出名。负载均衡
惟一的缺点是它只支持http、https和grpc。若是你非须要TCP负载均衡,那么您须要选择其余方案了。socket
它是负载均衡算法之王。它彷佛也很是适合负载均衡TCP链接。这是官方的HAProxy ingress,在生产环境使用的经验告诉咱们它具备极其稳定的记录。若是须要,您还能够得到付费支持订阅。
Voyager是一个基于HAProxy的Ingress。完美封装了HAProxy并提供了很好的文档说明。我没有看到负载均衡算法的配置位置,因此假设它只是默认为轮询。若是那是错的,请在评论中告诉我,我会更新。
基于Envoy,它有一些更现代的功能,如支持金丝雀部署。它还具备一套良好的负载均衡算法,并支持多种协议。与列出的其余Ingress不一样,我从Github那里了解到它仍处于快速发展阶段,有望添加更多功能。
如上所述,若是你遵循严格的kubernetes定义,那么这个技术上它并不算是一个Ingress。使用Ambassador您只需简单注释您的服务,它就像一个ingress路由流量。Ambassador有一些很是酷的功能,其余任何一个Ingress都没有像影子流量那样容许您经过镜像请求数据在实时生产环境中测试服务。
Ambassador与Opentracing和Istio很好地集成。
若是您已经在运行Istio,那么这多是一个很好的默认选择。它具备Ambassador拥有的一些更现代的功能。它也有故障注入,看起来可能颇有趣。然而,Istio目前在这个领域作了不少工做,而且已经从Ingress转向Gateway。所以,若是您正在寻找每5秒钟没有发生变化的Ingress,您可能仍然须要考虑Ambassador。
这里没有明显的赢家,由于你须要根据你的需求选择合适的Ingress。目前没有某一个Ingress能够作到这一切。
我建议您使用Ambassador。若是您只是运行标准的基于http的微服务而且喜欢了解技术前沿,那么你应该坚决果断的选择Istio,Ambassador和Jaeger。
微信群:联系我入群
Slack:servicemesher.slack.com 须要邀请才能加入
Twitter: twitter.com/servicemesh…
GitHub:github.com/
更多Service Mesh咨询请扫码关注微信公众号ServiceMesher。