站长网 Linux 6张图带你掌握 Kubernetes Ingress

6张图带你掌握 Kubernetes Ingress

Kubernetes Ingress 只是 Kubernetes 中的一个普通资源对象,需要一个对应的 Ingress 控制器来解析 Ingress 的规则,暴露服务到外部,比如 ingress-nginx,本质上来说它只是一个 Nginx Pod,然后将请求重定向到其他内部(ClusterIP)服务去,这个 Pod 本身

Kubernetes Ingress 只是 Kubernetes 中的一个普通资源对象,需要一个对应的 Ingress 控制器来解析 Ingress 的规则,暴露服务到外部,比如 ingress-nginx,本质上来说它只是一个 Nginx Pod,然后将请求重定向到其他内部(ClusterIP)服务去,这个 Pod 本身也是通过 Kubernetes 服务暴露出去,最常见的方式是通过 LoadBalancer 来实现的。

同样本文我们希望用一个简单清晰的概述,让你来了解 Kubernetes Ingress 背后的东西,让你更容易理解使用的 Ingress。

我们可以使用 Ingress 来使内部服务暴露到集群外部去,它为你节省了宝贵的静态 IP,因为你不需要声明多个 LoadBalancer 服务了,此次,它还可以进行更多的额外配置。下面我们通过一个简单的示例来对 Ingress 进行一些说明吧。

简单 HTTP server

首先,我们先回到容器、Kubernetes 之前的时代。之前我们更多会使用一个(Nginx)HTTP server 来托管我们的服务,它可以通过 HTTP 协议接收到一个特定文件路径的请求,然后在文件系统中检查这个文件路径,如果存在则就返回即可。

例如,在 Nginx 中,我们可以通过下面的配置来实现这个功能。

location /folder {    

    root /var/www/;    

    index index.html;    

}   

除了上面提到的功能之外,我们可以当 HTTP server 接收到请求后,将该请求重定向到另一个服务器(意味着它作为代理)去,然后将该服务器的响应重定向到客户端去。对于客户端来说,什么都没有改变,接收到的结果仍然还是请求的文件(如果存在的话)。

同样如果在 Nginx 中,重定向可以配置成下面的样子:

location /folder {    

    proxy_pass :8000;    

}   

这意味着 Nginx 可以从文件系统中提供文件,或者通过代理将响应重定向到其他服务器并返回它们的响应。

简单的 Kubernetes 示例

使用 ClusterIP 服务

在 Kubernetes 中部署应用后,我们应该先去了解 Kubernetes Service 服务(前文中讲解的)。比如我们有两个 worker 节点,有两个服务 service-nginx 和 service-python,它们指向不同的 pods。这两个服务没有被调度到任何特定的节点上,也就是在任何节点上都有可能,如下图所示:

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/server/linux/2021/0529/7555.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部