做网站公司无锡,微网站管理,wordpress 微博 主题,想建一个网站怎么做Service基本概念
K8S Service是K8S实现微服务架构最重要的组件之一#xff0c;主要作用#xff1a;1#xff09;为Pod提供稳定的访问地址#xff08;域名或IP#xff09;#xff0c;2#xff09;实现负责均衡#xff0c;3#xff09;自动屏蔽后端Endpoints的变化。
…Service基本概念
K8S Service是K8S实现微服务架构最重要的组件之一主要作用1为Pod提供稳定的访问地址域名或IP2实现负责均衡3自动屏蔽后端Endpoints的变化。
假设我们开发了一个用户认证和授权的功能这个功能以Deployment的形式来部署replicas是5即有5个pod可以同时提供认证和授权的功能。如果没有Service客户端在使用此功能的时候需要知道这5个Pod的IP地址并访问某一个IP地址。这里带来了很多问题1客户端需要维护这5个IP地址并选择某一个IP地址增加了客户端的复杂性。2如果客户端的IP地址发生变化客户端并不会自动感知很难及时通知到客户端。使用K8S的Service就能完美解决此问题。
由于Service的域名或IP地址不会发生变化所以对客户端来说其看到的服务域名是不变的即便Service对应的Endpoints发生了改变。一个Service的后端有多个Endpoints所以Service在选择某个Endpoint的时候会通过LB的方式来进行通过kube-proxy组件来实现LB具体基于iptables或ipvs。K8S的Service降低了普通微服务架构中服务注册和发现的开销很轻量级的实现了微服务架构中对服务的管理。
Service重要配置
Service中最重要的配置是ports和selector其中ports中定义了Service本身的端口和后端Pod的端口selector定义了选择哪些Pod来作为该Service的Endpoints。K8S的Service控制器会持续监控后端Pod列表的变化如果发生改变则其会实时更新Endpoints列表。
Service负载均衡机制
从Service的IP到后端Pod的选择是由运行在每个Node上的kube-proxy来实现的。可以选择iptables模式或者ipvs模式通过启动参数--proxy-mode来设置。
iptables基于Linux kernel的iptables规则来实现路由规则的定义和数据包的转发关于iptables可以参考https://www.cnblogs.com/kalixcn/p/17323391.htmlhttps://zhuanlan.zhihu.com/p/633712699
ipvsIPVS是Linux kernel内置的层四的LB比iptables的性能高且支持比较多的LB算法如rrlcdhsh等。