kubernetes之十一–基于上下文的路由

针对kubernetes群集,常常需要配置基于上下文的路由,kubernetes提供了多种方式去配置。用的最多的和最容易扩容的方式就是使用IngressController。 下图对ingress controler工作的方式作一个简单的描述。
kubernetes之十一–基于上下文的路由

在上图中,可以看中如何使用ingress controller基于上下文路由工作的,比如nginx. 图中部署了一个应用服务叫做web。 应用服务的所有Pods都有一个标签app-web. 因此,有一个kubernetes服务叫做web的对那些Pods提供了一个稳定的节点。也就是说针为任何请求为30044端口的服务 都会转发到该web服务。然后服务负载均衡到pods中的一个。

下面讲解对一个客户端访问https://example.com/web如何路由到web服务, 首先定义路由,从基于上下文的请求到对应的/,这是在通过Ingress对象定义的。

  1. 在Ingress 对象中,我们把主机定义为源,路径定义为服务名、端口号为目的。 当通过kubernetes API 服务器创建Ingress 对象后,在IngressController中的名为sidecar进程意味到这个变化。

  2. 改变nginx的反向代理配置文件。

  3. 通过添加新的路由,Nginx将会重新加载这个配置和因此能够正常的路由任何请求到https://example.com/web