阿里云ACK关于service部分的解释
spec.externalTrafficPolicy = Cluster模式的Service,CCM默认会将所有节点挂载到SLB的后端(使用BackendLabel标签配置后端的除外)。由于SLB限制了每个ECS上能够attach的SLB的个数(quota),因此这种方式会快速的消耗该quota,当quota耗尽后,会造成Service Reconcile失败。解决的办法,可以使用Local模式的Service。 spec.externalTrafficPolicy = Local模式的Service,CCM默认只会将Service对应的Pod所在的节点加入到SLB后端。这会明显降低quota的消耗速度。同时支持四层源IP保留。
问题描述:
1. 创建ACK 托管专业版将默认的3节点设置成2节点;
2.目前2节点完全正常。
3.扩展集群节点数量,第三个节点出现wget 集群SLB(公网IP:47.95.7.x,id:lb-2zekq1buhhg) 的服务www.xxx.com出现:failed: Connection refused 的错误。
4.手动创建一个全新的ECS,执行wget www.xxx.com 正常,执行扩展集群添加已有节点,手动执行集群扩展节点后出现第3条情况。
5.当前使用的SLB为集群默认创建
6.手动创建新的SLB,复制默认SLB中的配置,在第三步新增节点中未复现问题。
上述问题解决:
更新nginx-ingress的外部流量策略:从local改成cluster。
@南非波波
github:https://github.com/swht

浙公网安备 33010602011771号