首页 > 解决方案 > HTTP Web 服务器和 Ingress 的区别?

问题描述

我正在学习 k8s 的世界,并且有很多关于入口和入口控制器的讨论。从概念上讲,它听起来与 Web 服务器相同,我将其定义为将 HTTP 请求代理到 Web 应用程序服务器的服务。它可以提供证书并进行基本的负载平衡......

而 ingress:Ingress 将来自集群外部的 HTTP 和 HTTPS 路由暴露给集群内的服务。流量路由由 Ingress 资源上定义的规则控制。Ingress 可以提供负载平衡、SSL 终止和基于名称的虚拟主机。 https://kubernetes.io/docs/concepts/services-networking/ingress/

他们听起来一样!那么这里到底有什么区别呢?我不会是唯一一个对此感到困惑的人吧?

标签: httphttpsproxywebserverkubernetes-ingress

解决方案


一般来说, Web 服务器负责接受和完成来自客户端的请求。

Web 服务器的基本工作是接受和满足客户端对来自网站的静态内容(HTML 页面、文件、图像、视频等)的请求。客户端几乎总是浏览器或移动应用程序,请求采用超文本传输​​协议 (HTTP) 消息的形式,Web 服务器的响应也是如此。

最近您可以找到许多 Web 服务器,例如ApacheNginx

Kubernetes Ingress是一个API object. 在IBM 博客中 - 什么是 Kubernetes Ingress,它为什么有用?

Kubernetes Ingress 是一个 API 对象,它提供路由规则来管理外部用户对 Kubernetes 集群中服务的访问,通常通过 HTTPS/HTTP。使用 Ingress,您可以轻松设置路由流量规则,而无需创建一堆负载均衡器或暴露节点上的每个服务。这使其成为在生产环境中使用的最佳选择。

同样在Kubernetes Ingress Docs中,您可以找到Kubernetes Ingress需要Ingress Controller

您必须有一个 Ingress 控制器才能满足 Ingress。仅创建 Ingress 资源没有任何效果。

有许多入口控制器,如NginxAmbassadorApache等。

总结一下:

要使用Ingress你需要一些Web Serveras Ingress Controller

Kubernetes Ingress是一个Kubernetes object帮助用户Web Server在 Kubernetes 集群中配置(如 Nginx)的工具。

正如您在文档中指出的那样,它允许您配置一些HTTP/HTTPS路由、流量负载平衡、终止 SSL / TLS 等。

Ingress 将来自集群外部的 HTTP 和 HTTPS 路由暴露给集群内的服务。流量路由由 Ingress 资源上定义的规则控制。


推荐阅读