最近更新时间:2022-01-13 22:11:39
在Kubernetes集群中,Service和Pod的IP仅在集群内部访问,如果外部应用需要访问集群内的服务,集群外部请求将被转发到Service所在节点暴露的NodePort上,然后由Kube-proxy组件将其转发给相关的Pod。而Ingress是为集群外部请求提供的路由规则集合,简单来讲就是提供外部访问集群的入口,将外部的HTTP或HTTPS请求转发到集群内不同Service的后端Pod上。
Ingress资源中定义了外部流量的路由规则,而这些规则的解析与转发需要由Ingress controller来实现。Ingress controller负责解析Ingress规则,在Ingress规则有增删改的变动时同步更新controller对应的访问配置,当Ingress controller收到请求时根据Ingress中的访问规则将请求转发到对应的Service上。因此Ingress规则生效的前提之一,是Kubernetes集群中部署了可以解析对应规则的Ingress controller。Ingress工作原理示意图如下:
容器服务基于Nginx ingress controller和金山云负载均衡服务来实现外部请求在集群内的转发。您可根据业务负载情况对Ingress controller进行自定义容器化部署,也可兼容Nginx ingress开源方案,通过Annotations扩展Kubernetes原生Ingress能力,实现灰度发布、URL重定向等高级配置。
nginx.conf
文件。纯净模式