A集群导入B集群中的高可用版rancher,一直处于pending状态

小丫6个月前技术文章301

问题现象:

已知在B集群中采用helm方式部署了一个高可用版本的rancher,该rancher中已经配置导入了三套集群,并且三套集群状态在rancher控制台处均显示正常,日常可借助该rancher管控这三套集群。现在公司内另外又新部署了一套k8s集群,假定名称为A集群,通过rancher控制台配置导入该A集群,发现rancher控制台处该集群状态一直显示为pending状态。

排查步骤:

rancher控制台上A集群状态显示为pending,没有其它任何报错提示,所以首先登录到B集群,然后查看rancher server端的日志是否有报错。

经核查,rancher server端有报错,具体报错内容忘记保存下来了,但是rancher server端的报错内容不太好定位具体是哪里的问题。

去A集群中查看rancher agent端是否有报错,最终看到有连接rancher server端端口超时的报错。

于是,登陆到A集群的rancher agent 的pod内,打算使用telnet测试下到rancher server端端口的连通性,发现pod内没有telnet命令。

1、pod内ping目标主机ip

尝试在A集群手动启动一个测试busybox,如下:

image.png

在该pod内测试到rancher server端的网络连通性,如下:pod内ping rancher server端pod所在的主机ip,ping不通

image.png

同时在该pod所在的主机节点上抓包,会发现,只有到目标地址的请求包,没有回包

image.png

然后在目标主机上抓包,可以看到有正常的请求包以及回包

image.png

2、pod所在主机ping目标主机


在busybox pod所在的集群A 主机节点测试到集群B主机节点ip的网络联通性,如下:集群A主机 ping集群B主机,可以正常ping通

image.png

结论:

最终排查,发现是由于集群A中pod的网段和主机网段冲突导致。


image.png

查看生效的pod网段可以直接使用命令:

kubectl get IPPool

总结:

k8s跨集群网络互通访问,如果出现网络不通的情况。

一般是优先从以下两个方面排查:

1、集群内网络插件是否正常。状态是否正常;网络插件日志是否有刷异常

2、网段是否有冲突情况。pod主机网段、主机网段


相关文章

MySQL性能优化(二)优化排序操作

MySQL性能优化(二)优化排序操作

排序是数据库的基本功能。一个例子SELECT * FROM audit_log  WHERE user_id = xxx AND&nb...

Ambari部署

Ambari部署

Ambari 官方资料入口:https://www.cloudera.com/products/open-source/apache-hadoop/apache-ambari.htmlAmbari 相...

通过SDK上传oss文件报错“413 Request Entity Too Large”

通过SDK上传oss文件报错“413 Request Entity Too Large”

问题描述通过SDK上传oss文件返回错误如下,客户反馈上传的文件不大,只有200M。浏览器端访问返回504 timeout报错,同客户核实是每次到1min 30s时候上传大文件会报错com.aliyu...

MySQL 在线开启 GTID

MySQL 在线开启 GTID

描述生产环境上也会遇到需要开启 GTID ,有什么风险?如何在线开启?本篇 SOP 将介绍。GTID 限制由于基于 GTID 复制依赖于事务,所有开启 GTID 时,有些 MySQL 特性不支持:事务...

开源大数据集群部署(二)集群基础环境实施准备

开源大数据集群部署(二)集群基础环境实施准备

1、部署实施Ø  部署实施章节中灰色文本内容为操作命令和配置文件内容。Ø  下文中$表示系统命令解释器开始符号,且表示所有机器都要执行,如出现[hadoop@hd1.dtstack...

ACOS统一监控之java应用断诊

ACOS统一监控之java应用断诊

一、前言对于一些使用Java语言搭建的应用架构,java的应用诊断可以帮助开发人员快速发现和解决应用程序中的问题,提高应用程序的性能和稳定性。以下是常用Java应用诊断方法:堆转储分析:使用工具如MA...

发表评论    

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