阿里云k8s 内部pod访问slb报错

背景:

集群sit环境中部署有au的服务模块,通过service LoadBalancer (SLB) 代理出去,置了externalTrafficPolicy: Local类型,这种类型的SLB地址只有在Node中部署了对应的后端Pod,才能被访问。因为SLB的地址是集群外使用,如果集群节点和Pod不能直接访问,请求不会到SLB,会被当作Service的扩展IP地址,被kube-proxy的iptables或ipvs转发
需要将其改为cluster类型externalTrafficPolicy,然后发现网络同类,报错如下

[root@iZ2zehqy0fmdhfb4n5op8oZ ~]# curl -k https://acsit.jrdaimao.com
curl: (35) SSL received a record that exceeded the maximum permissible length.

问题排查:

   登录node节点执行

[root@iZ2zehqy0fmdhfb4n5op8oZ ~]# ip route get 112.126.68.1  (这个ip为acsit.jrdaimao.com线上ip)
local 112.126.68.1 dev lo src 112.126.68.1 
    cache <local> 

发现还是走的lo网卡,集群内转发,而不是通过eth0出到互联网,访问到SLB上。
集群网络模式为ipvs, ipvs 拦截的是EXTERNAL-IP 这个字段的地址,pod内访问您slb的地址,是被ipvs拦截的,导致请求没有到达slb,直接被ipvs转发到了您后端pod 上了,证书是配置在slb上的,所以https访问肯定是没有证书的,就会报错

解决办法:

1.删除公网的slb,新建内网的slb
2.找到新建内网的 slb,买公网,给这个slb绑一个公网ip

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值