K8s Pod无法访问SLB地址

小丫11个月前技术文章391

一、问题现象

客户反馈172.16.11.220 telnet 47.99.87.129 80 不通,另一台172.16.11.219可以通。

二、排查思路

172.16.11.220,172.16.11.219 分别是k8s集群中的两个节点,使用负载均衡 x.x.x.x部署入口网关,当应用Pod访问入口网关暴露的SLB地址时,出现以下问题:

  • 部分节点上的Pod能访问入口网关暴露的SLB地址。

  • 部分节点上的Pod不能访问入口网关暴露的SLB地址。

排除了网络以及安全规则等原因。怀疑是k8s集群中的配置导致。

三、结论

如果Kubernetes集群的服务配置了externalTrafficPolicy: Local,则只有部署了服务的后端Pod才能访问SLB地址。因为SLB地址是集群外使用,如果集群节点和Pod不能直接访问SLB地址,请求不会路由到负载均衡,而是被当作服务的扩展IP地址,被kube-proxy的iptables或IPVS转发。

如果集群节点或者Pod所在的节点上没有相应的后端服务Pod,就会发生网络不通的问题。而如果有相应的后端服务Pod,则可以正常访问SLB地址。

image.png

image.png

四、解决方案

1、可以将pod分别调度到这两台node节点上 ,这样两个节点都可以访问到该slb;

2、可以在Kubernetes集群内通过ClusterIP或者服务名访问SLB地址。

最后业务方将pod部署到不同节点后解决






相关文章

oracle手工管理的不完全恢复

一)使用当前控制文件做不完全恢复示例1: 恢复过去某个时间点误删除的table(基于时间点的不完全恢复)前提:在这个状态下先在OS下做一个数据文件和控制文件的冷备。SQL> shutdown i...

使用clickhouse-backup迁移数据

使用clickhouse-backup迁移数据

说明上一篇文章中,我们介绍了clickhouse-backup工具。除了备份恢复,我们也可以使用该工具来迁移数据。这篇文章中,我们提供一个使用clickhouse-backup做集群迁移的方案。前置条...

远程DEBUG HADOOP源码方法

远程DEBUG HADOOP源码方法

1. 安装IDEA2. 下载hadoop源码,必须与集群服务代码版本一致,否则会导致有的类无法找到3. 将源码导入IDEA工程并完成build4. 点击 菜单栏--运行--编辑配置 进行相关debug...

Kafka Rebalance详解

1.rebalance概览rebalance中文含义为再平衡。它本质上是一组协议,它规定了一个 consumer group 是如何达成一致来分配订阅 topic 的所有分区的。比方说Consumer...

副本集的同步、心跳、选举、回滚

一、副本集同步过程   MongoDB的复制功能是依赖与oplog来实现的。   1.数据写入主节点同时在local.oplog.rs集合写入对应的oplog   2.备份节点第一次同步数据时,会先进...

MySQL运维实战之ProxySQL(9.8)SQL镜像

使用proxysql的镜像(mirror)功能,可以将SQL发送到一个额外的后端实例执行。还可以将发送到镜像的SQL进行改写,以测试修改后的SQL是否能正常执行。通过mirror_flagOut字段,...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。