K8s问题之对于网络因为高可用演练等情况导致的突然不通的情况

两套k8s集群,A集群访问B集群,其中,B集群部署了keepalive,有vip地址。初始,A集群可以访问通B集群的实ip和对应的服务端口,也可以访问通vip地址及其服务端口。

现象:

在最开始的测试结束,对B集群进行逐台开关机的高可用测试时,发现B集群,第一台机器关机后,出现了vip地址ping不通,对应的端口服务也访问不通的情况,并且A机器部分机器也访问不通B集群的实IP及其端口。

排查思路:

1、网络问题

2、服务问题

3、k8s组件问题

网络问题:

针对网络问题,逐台机器进行ping和telnet,并通过抓包,对TCP的连接情况做网络判断:

上图可以看出,A机器中的70,访问B机器的K8s02,是有正常的TCP三次握手连接的,但A机器中的72,则没有回包了。

这个很离奇。。。,

经过路由的排查,路由也没有增加限制。

 所以,网络的问题就排除了

服务问题:

鉴于部分A机器能访问通B机器端口,并且,B机器第一台机器开机后,服务都正常,且查询对应pods状态也都是正常的,也可以排除。

k8s组件问题:

kubectl get pods -n kube-system

 通过以上命令,查询组件发现calico-kube-controllers服务的镜像拉下来,对应的服务挂掉了,没起来,还有相关的metrics-server。

其中,calico-kube-controllers服务是用户在k8s集群中设置了Pod的Network Policy之后,calico-kube-controllers就会自动通知各个Node上的calico-node服务,在宿主机上设置相应的iptables规则,完成Pod间网络访问策略的设置。

metrics-server服务提供容器基础资源监控能力。

反正就是这两个服务挂掉了。

找对应的组件同事重新拉了一下镜像就,网络就好了。

就是这样。

总结:

对于k8s服务,排查思路就是以上的情况,组件的问题经常会出现,这是我遇到的第三四次了,要有一定的排查方向意识。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值