jwilder / nginx-proxy和kubernetes / ingress-nginx有什么区别

时间:2018-04-02 02:34:48

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

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. 你什么时候使用一个?

2 个答案:

答案 0 :(得分:0)

这是两个不同的应用程序,但两者都基于Nginx并具有类似的功能。

  1. jwilder的Nginx-proxy是Docker容器的代理服务器,包括var can = document.getElementById('canvas'); var cn = can.getContext('2d'); cn.fillStyle = 'black'; cn.fillRect(0, 0, can.width, can.height); class object { constructor(r,sa,ea) { this.x = Math.floor(Math.random()*800); this.y = Math.floor(Math.random()*600); this.r = r; this.sa = sa; this.ea = ea; console.log('object successfully created') } drawcircle(){ cn.strokeStyle = "white" cn.arc(this.x,this.y,this.r,this.sa,this.ea,false); cn.lineWidth = 3; cn.stroke(); } } var i; for(i = 0 ; i < 100 ; i++) { var circle = new object(5, 0, Math.PI*2); circle.drawcircle(); } 自动生成Nginx的配置。您可以将它用于SSL终止,负载平衡等。但是在Kubernetes中管理nginx-proxy将很困难。

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

  3. 因此,如果您使用Kubernetes,Ingress-nginx是最佳选择。如果您只使用没有orchestrator的Docker容器,请使用Nginx-proxy。

答案 1 :(得分:0)

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

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

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

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

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

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