3

jwilder/nginx-proxy 在 Docker Hub 上有 1.3K STARS 和 10M+ PULLS。并在 GitHub 上观看 262、Star 7701、Fork 1546。 https://github.com/jwilder/nginx-proxy

kubernetes/ingress-nginx 在 kubeapps.com 上获得了 13 颗星(最多星的图表之一),在 GitHub 上获得了 Watch 137、Star 1596、Fork 918。 https://github.com/kubernetes/ingress-nginx

  1. 两者有什么区别?
  2. 您什么时候会使用其中一种?
4

2 回答 2

3

那是两个不同的应用程序,但都基于 Nginx 并且具有相似的功能。

  1. jwilder 的 Nginx-proxy 是 Docker 容器的代理服务器,其中包括docker-gen自动为 Nginx 生成配置。您可以将它用于 SSL 终止、负载平衡等。但是在 Kubernetes 中管理 nginx-proxy 会很困难。

  2. Kubernetes 的 Ingress-nginx 是Ingress Controller ,它为您的 Kubernetes 集群提供Ingress功能。它也可以做 SSL 终止和其他一些事情,但它是专门为在 Kubernetes 中使用而创建的,它是抽象的。这意味着您可以创建包含服务作为后端的 Ingress 对象并使用选择器等。

所以,如果你使用 Kubernetes,Ingress-nginx 是最好的选择。如果您只使用没有编排器的 Docker 容器,请使用 Nginx-proxy。

于 2018-04-04T11:13:32.880 回答
0

Kubernetes中,用户决定公开哪些功能集以及应该以何种方式实现配置。帮助可能来自企业供应商,例如GKE提供的Ingress控制器,也可能来自社区/私有方,涵盖交付服务类似方面的不常见方法。

在这种特殊情况下,我们有两个 nginx 驱动的解决方案。

Ingress 控制器功能齐全,通常被认为是与 GKE 一起使用的默认流量控制器。

Ingress 可以配置为为服务提供外部可访问的 URL、负载平衡流量、终止 SSL 并提供基于名称的虚拟主机。

用户通过将 Ingress 资源 POST 到 API 服务器来请求 Ingress。Ingress 控制器负责实现 Ingress,通常使用负载均衡器,但它也可以配置边缘路由器或其他前端以帮助以 HA 方式处理流量。现在 Ingress 在配置方面是严格面向云的,它使用ConfigMap风格和kubedns来注册服务。

如果您知道老式虚拟主机是如何工作的,并且您对 Web 服务交付的每个新的面向云的方面都不感兴趣,那么 jwilder/nginx-proxy可能对您很感兴趣。在这个解决方案中,nginx 可以充当代理来控制内部托管和使用 IPv6 就绪端点的世界 Web 流量。jwilder/nginx 并不是特别专注于云,但在那里也能正常工作。如果您有兴趣获得免费的 Let's Encrypt证书,可以使用开箱即用的支持。一些用户发现可以使用基本身份验证很有趣,并且 SSL 更灵活地配置用于高级目的。

于 2018-04-04T12:57:11.190 回答