【问题标题】:What's the difference between jwilder/nginx-proxy and kubernetes/ingress-nginxjwilder/nginx-proxy 和 kubernetes/ingress-nginx 有什么区别
【发布时间】:2018-04-02 02:34:47
【问题描述】:

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. 您什么时候会使用其中一种?

【问题讨论】:

    标签: nginx kubernetes kubernetes-ingress jwilder-nginx-proxy


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2020-05-03
        • 1970-01-01
        • 2015-09-25
        • 2020-12-31
        • 2020-08-13
        • 2018-03-08
        • 1970-01-01
        • 2017-03-19
        • 1970-01-01
        相关资源
        最近更新 更多