35、k8s-Ingress介绍-类似于service的一种类型、比service强大
前面提到:service对集群之外暴露服务的蛀牙方式有两种:NodePort和LoadBalancer、但是这两种方式都有一定的缺点: ·NodePort方式缺点是会占用很多集群机器的端口、那么当集群服务变多的时候、这个缺点就越发明显 ·LB方式的缺点是每个service需要一个LB,浪费、麻烦、并且需要kubernetes之外的设备支持 基于这种现状、kubernetes提供了Ingress资源对象、Ingress只需要一个NodePort或者一个LB就可以暴露多个service的需求、工作机制大致如下图:
实际上、Ingress相当于一个7层的负载均衡器、是kuberbetes对反向代理的一个抽象、它的工作原理类似于nginx、可以理解成 在Ingress里建立诸多映射规则、Ingrss Controller通过监听这些配置规则并转化成Nginx的反向代理配置、然后对外部提供服务。 这里有两个核心的概念: ·Ingress:kubernetes种的一个对象、 作用是定义请求如何转发到service的规则 ·ingress controller:具体实现方向代理机负载均衡的程序、对ingress定义的规则进行解析、根据配置的规则来实现请求的转发、实现的方式有 ··nginx ··Contour ··Haproxy ingress(以nginx为例)的工作原理: ·用户编写ingress规则、说明哪个域名对应kubernetes集群中的哪个service ·ingress控制器动态感知ingress服务规则的变化、然后生成一段对应的nginx反向代理配置 ·ingress控制器会将生成的nginx配置写入到一个运行着的nginx服务中、并动态更新 ·到此为止、其实真正在工作的就是一个nginx了、内部配置了用户定义的请求转发规则
本文作者:little小新
本文链接:https://www.cnblogs.com/littlecc/p/17683349.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
标签:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步