•ingress controller的本质是多一层nginx7层代理
•ingress controller本质是多一层nginx7层代理,默认情况下ingress controller svc使用的lb为4层 tcp监听,tls需要通过ingress配置来支持。对于七层节点来说,服务端如果需要采集客户端真实IP地址,需要采集XFF的header来确定客户端的地址需要采集XFF的header来确定客户端的地址
•ingress的后端或者证书更新的时候,svc的ep更新后,ingress也会重新reload backend,这之间是需要一个时间差的,这个差值一般在几秒以内,不会对业务产生影响。所以存在pod已经被从svc 的ep中移除,但是还为从ingress controller的backend移除,依然会存在请求打到老pod,所以建议在pod中设置prestop来进行优雅的关闭连接。
•Loadblance 类型的svc
•依赖slb的负载均衡算法 健康检查,白名单等功能,可以通过SLB的ACL名单,来控制SLB的访问规则。
•slb支持7层监听,可以将证书放到slb上来完成https的握手,但是slb与后端pod使用http协议通讯。 这时候如果集群内访问SLB IP其实链路是不经过SLB的,会被iptables规则直接转发到目的pod,无法建立http是连接
•默认添加的后端服务器是nodeport类型,Terway模式,优选eni类型,这样SLB会直接转发到目的pod所在的ECS的附属ENI上,避免了后端ECS上的多次转发
•NodePort类型的svc
•依赖节点本身具备公网ip,这种用法会比较消耗eip,需要每个ECS配置EIP来提供被公网访问的能力
•不同的pod所在节点公网能力有所不同,会增加运维成本,建议使用SLB的方式提供对外服务的能力"
以上内容摘自《企业级云原生白皮书项目实战》电子书,点击https://developer.aliyun.com/ebook/download/7774可下载完整版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。