http - HTTP Web 服务器和 Ingress 的区别?
问题描述
我正在学习 k8s 的世界,并且有很多关于入口和入口控制器的讨论。从概念上讲,它听起来与 Web 服务器相同,我将其定义为将 HTTP 请求代理到 Web 应用程序服务器的服务。它可以提供证书并进行基本的负载平衡......
而 ingress:Ingress 将来自集群外部的 HTTP 和 HTTPS 路由暴露给集群内的服务。流量路由由 Ingress 资源上定义的规则控制。Ingress 可以提供负载平衡、SSL 终止和基于名称的虚拟主机。 https://kubernetes.io/docs/concepts/services-networking/ingress/
他们听起来一样!那么这里到底有什么区别呢?我不会是唯一一个对此感到困惑的人吧?
解决方案
一般来说, Web 服务器负责接受和完成来自客户端的请求。
Web 服务器的基本工作是接受和满足客户端对来自网站的静态内容(HTML 页面、文件、图像、视频等)的请求。客户端几乎总是浏览器或移动应用程序,请求采用超文本传输协议 (HTTP) 消息的形式,Web 服务器的响应也是如此。
最近您可以找到许多 Web 服务器,例如Apache或Nginx。
Kubernetes Ingress是一个API object
. 在IBM 博客中 - 什么是 Kubernetes Ingress,它为什么有用?
Kubernetes Ingress 是一个 API 对象,它提供路由规则来管理外部用户对 Kubernetes 集群中服务的访问,通常通过 HTTPS/HTTP。使用 Ingress,您可以轻松设置路由流量规则,而无需创建一堆负载均衡器或暴露节点上的每个服务。这使其成为在生产环境中使用的最佳选择。
同样在Kubernetes Ingress Docs中,您可以找到Kubernetes Ingress
需要Ingress Controller
。
您必须有一个 Ingress 控制器才能满足 Ingress。仅创建 Ingress 资源没有任何效果。
有许多入口控制器,如Nginx、Ambassador
、Apache
等。
总结一下:
要使用Ingress
你需要一些Web Server
as Ingress Controller
。
Kubernetes Ingress
是一个Kubernetes object
帮助用户Web Server
在 Kubernetes 集群中配置(如 Nginx)的工具。
正如您在文档中指出的那样,它允许您配置一些HTTP/HTTPS
路由、流量负载平衡、终止 SSL / TLS 等。
Ingress 将来自集群外部的 HTTP 和 HTTPS 路由暴露给集群内的服务。流量路由由 Ingress 资源上定义的规则控制。
推荐阅读
- ssl - 2路ssl与Nginx
- gradle - Vaadin 12,Tomcat:找不到基本名称的捆绑包
- nopcommerce - Nopcommerce 支付方式友好名称在构建解决方案后恢复为默认值
- laravel - 无法在多态关系上获得正确的 Eloquent 关联
- java - 由于 Lambok 注释类,Maven 构建失败
- c# - 如何根据 Excel 搜索结果填充 DataGridView 并从 DataGridView 中删除空白标题?
- reactjs - autoHideDuration 在 Snackbar @material-ui 中不起作用
- matlab - 从多个文本文件导入数据
- python-3.x - 有没有更好的方法同时解析两个列表?
- r - R传单包没有正确显示特殊字符?