一次网络不通“争吵”引发的思考
💡
原文中文,约6900字,阅读约需17分钟。
📝
内容提要
本文讨论了在Kubernetes集群中访问CLB时可能出现的问题,解决方法包括使用两个CLB或阿里云的svc注解方式。还讨论了Kubernetes 1.24版本中IPVS的变化以及集群内外访问SLB和NodePort的情况。
🎯
关键要点
- Kubernetes集群内访问CLB时可能出现连接拒绝的问题。
- 集群内访问CLB的443端口不通,但80端口正常。
- CLB的IP被绑定到K8s的dummy网卡上,导致443端口没有对应的ipvs规则。
- 建议使用两个CLB分别处理集群内外的服务。
- 阿里云svc注解可以避免CLB的IP绑定到dummy网卡上。
- Kubernetes 1.24版本中IPVS的行为变化影响了流量策略。
- externalTrafficPolicy为Cluster时,集群内访问会丢失源IP。
- externalTrafficPolicy为Local时,集群内访问可以保留源IP。
- 集群外访问SLB和NodePort的情况与1.24版本之前相似。
- 集群内访问NodePort时,只有有Endpoint的节点才能通。
- 没有Endpoint的节点访问NodePort会失败。
- 集群内访问SLB或NodePort的行为在1.24版本之后有所变化。
- 集群内访问没有后端pod的节点时,可能会出现连接超时或失败的情况。
🏷️
标签
➡️