pod内无法访问slb的监听

小丫2年前技术文章795

问题背景

在A账号下的k8s集群中有个nginx 应用,需要去访问B账号下内网slb代理的一个服务。B账号下的slb有多条监听,测试发现只有个别监听可以telnet通,其余监听telnet均不通。可能是哪里的问题呢?

排查步骤

1、最先想到的是排查B账号下的slb监听是否有开启访问控制?

核实,确认所有的监听均没有开启访问控制。

2、A账号k8s集群中pod或者svc的ip刚好和B账号的slb的ip冲突了?

登陆到A账号的k8集群中,核查集群网络情况,如下:

image.png

从输出结果确认,A账号这边不存在和要访问的ip有冲突的情况。

4、核查A账号和B账号网络打通情况

两个账号通过VPN ipsec打通,路由表信息如下:

image.png

由于是直接访问的slb不通,同时发现,slb后端ecs的网段在vpn配置的路由表的段中。所以,直接绕过slb,测试到后端ecs的网路连通性情况。

针对这两个监听后端的ecs分别做ping测试,发现确实极个别的ecs可以ping通,很多ecs都无法ping通。

进一步,分别登陆到ping正常和ping异常的服务器,尝试去抓包分析。

这个时候,在ping异常的服务器上,查看ip信息的时候,发现,服务器上部署了docker服务,而ping正常的服务器上是没有部署docker服务的,同时ping异常的服务器上规划的网段刚好和A账号下的k8s集群的pod网段有冲突,这时候就判断是由于这里的问题导致的。

为了验证这一结论,在A账号的nginx服务的pod内发起ping动作,同时在ping异常的服务器上抓包,抓包结果如下:

image.png

可以看到,只有入包,没有回包(因为,docker启动的容器,并没有占用172.18.0.111)

和之前的判断一致。所以要想解决这一问题,简单的方法就是调整下docker的网段。


相关文章

image.png

kvm相关命令

一、管理kvm虚拟机1、创建虚拟机virt-install --name=centos1 –ram 1024 --vcpus=1 –disk path=/root/centos1.img,size...

数据湖技术之iceberg(九)Spark与Iceberg整合写操作

数据湖技术之iceberg(九)Spark与Iceberg整合写操作

1. INSERT INTO"insert into"是向Iceberg表中插入数据,有两种语法形式:"INSERT INTO tbl VALUES (1,"z...

MySQL 官方高可用方案:Innodb ReplicaSet

MySQL 官方高可用方案:Innodb ReplicaSet

说明MySQL Innodb ReplicaSet 是 MySQL 团队在 2020 年推出的一款产品,用来帮助用户快速部署和管理主从复制,在数据库层仍然使用的是主从复制技术。ReplicaSet 主...

RDS通过DMS管理登录处理

RDS通过DMS管理登录处理

问题描述无法通过DMS管理登录进入数据库,报错如下:问题处理方式一在RDS控制台新建账号 账号管理--创建账号将此数据库添加进DMS在DMS控制台--数据库实例--新增实例将新建的数据库账号信息进行录...

Flink部署

安装前准备1.1. 添加环境变量vi /etc/profile export FLINK_HOME=/opt/flinkexport PATH=$PATH:$FLINK_HOME/bin source...

从Docker拉取镜像一直失败超时?这些解决方案帮你解决烦恼

设置国内源:提示:常规方案(作用不大)阿里云提供了镜像源:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 登录后你会获得一个专属...

发表评论    

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