Kubernetes服务发现ingress详解

1、Service机制的局限性

Service提供的负载均衡功能有以下限制:

  • 只提供 4 层负载均衡,不支持7层负载均衡功能。
  • 使用 NodePort 类型的 Service,需要在集群外部部署一个外部的负载均衡器。
  • 使用 LoadBalancer类型的Service,Kubernetes 必须运行在特定的云服务上。
  • 每创建一个Service NodePort类型,就会在每个节点开启一个端口,当项目多时,端口会难以维护。当项目很多时,Service的Iptables规则也随着数倍增多,如此多的iptables条目让增大维护和故障定位。

如何理解上面的局限性呢,下图是NodePort模式运行原理图:

2、ingress-nginx如何实现服务发现

针对上述问题,k8s官方提供了一种折中的方案:Ingress与Service不同,Ingress实际上不是一种服务。相反,它位于多个服务之前,充当集群中的智能路由器或入口点。

ingress-nginx实现架构如下图所示:

Ingress是在Kubernetes 1.1 版本后引入的资源类型。Ingress 支持将 Service 暴露到 Kubernete

猜你喜欢

转载自blog.csdn.net/qq_35029061/article/details/132201044