k8s Ingress使用详解

一、什么是Ingress

在上一篇关于k8s之service的使用一篇中提到,Service对集群之外暴露服务的主要方式有两种,NotePort和LoadBalancer,但这两种方式,都有一定的缺点,具体来说:

  • NodePort 会占用很多集群机器的端口,当集群服务变多的时候,过多的端口会给k8s的运维人员带来诸多的不便;
  • 而LB的缺点是每个service需要一个LB,不仅浪费而且麻烦,并且需要kubernetes之外设备的支持;

基于这种现状,k8s提供了Ingress这种资源对象,Ingress只需要一个NodePort或者一个LB就可以满足暴露多个Service的需求;

二、Ingress 工作机制

 Ingress 的工作机制可参考下图进行理解;

实际上,Ingress相当于一个7层的负载均衡器,可以理解为kubernetes对反向代理的一个抽象,它的工作原理类似于Nginx;

或者可以理解为:在Ingress里建立了诸多的映射规则,Ingress Controller通过监听这些配置规则并转化成Nginx的反向代理配置 , 然后对外部提供服务;

三、Ingress 核心概念

关于Ingress,有下面两个概念需要

猜你喜欢

转载自blog.csdn.net/zhangcongyi420/article/details/128524082