NGINX 入口控制器与 Kubernetes(社区)入口控制器之间的比较

问题描述 投票:0回答:1

我有一个用例,我试图在 AKS 集群中从当前的 Kubernetes(社区)入口控制器切换到 NGINX 入口控制器(基于 OSS 的免费版本)。

我发现基于 k8 的入口控制器拥有更强大的社区支持,有些人甚至认为它比 NGINX 入口控制器具有更多功能。但 NGINX 版本支持一些高级功能,例如 Canary(超过 2 个服务)和熔断等。

参考:https://stackoverflow.com/a/78494077/13126651

我想知道两件事,因为它们都是基于 NGINX 的。

  • 如果我从社区 Ingres 控制器切换到 NGINX Ingress 控制器,将会发生重大代码更改或逻辑更改。我假设它应该是简单的重构,因为语法和语义或多或少会如此?我的理解正确吗
  • 如果 NGINX Ingress Controller 由 NGINX 而不是由社区(如 Kubernetes INGRESS 控制器)维护,那么使用 NGINX 控制是否有缺点?我只是想知道为什么社区更喜欢社区版?是否存在任何性能问题,或者 NGINX 免费版本非常有限,NGINX 希望使用商业版本来利用其全部功能。
azure-aks nginx-ingress ingress-controller ingress-nginx
1个回答
1
投票

免责声明:我从事 NGINX Ingress Controller 工作。

我们不倾向于记录社区入口控制器和 NGINX 入口控制器之间的差异,因为比较很快就会过时,但我可以回答你的两个要点。

如果我从社区 Ingres 控制器切换到 NGINX Ingress Controller,是否会有重大代码更改或逻辑更改

有关于此的文档这里。如果您选择将

Ingress
资源转换到 CRD(例如
VirtualServer
CRD),有两种路径,这可能比转换到
Ingress
资源需要更多工作,如
Ingress
->
Ingress
主要是注释更改,但根据您想要的功能,这可能是值得的。例如,流量分割重定向匹配构造都不能很好地融入
Ingress
注释,但它们是
VirtualServer
CRD的一部分。

如果 NGINX Ingress Controller 由 NGINX 而不是由社区维护(如 Kubernetes INGRESS 控制器),那么使用由 NGINX 控制是否有缺点?

我认为它由与 NGINX 本身相同的实体拥有是一个优势。例如,当我们向 NGINX Ingress Controller 添加新功能时,我们首先在同事(了解 NGINX 内部结构的人)面前演示它们,并获得反馈并迭代这些功能。这是在其他地方不可能实现的独特卖点。此外,由于 F5 NGINX 归根结底是一家安全公司,因此我们在安全方面坚持非常高的标准,即图像修补、TMA 等。

我只是想知道为什么社区更喜欢社区版?

两者最终都很受欢迎。当我写这篇文章时,NGINX Ingress Controller 已接近 10 亿 docker pulls

有任何性能问题吗

不,我们使用核心 NGINX OSS/NGINX Plus。

© www.soinside.com 2019 - 2024. All rights reserved.