一、问题描述:
广州电信研究院5GC上云项目,因机房空调改造导致环境上下电操作后,从k8s master上查看网元节点状态,发现是Not Ready的状态,而计算节点、控制节点等状态正常。
登录各个网元节点虚机所在物理机,查看网元虚机状态,都是running的,说明网元节点虚机本身没有问题。
同时可以正常登录网元节点虚机,说明虚机状态、网络正常。
二、问题的解决过程:
1. 因为问题的表象在k8s容器,所以先找容器定位,但发现容器本身没有问题。
2. 找平台定位,发现网元所在的物理机可以ping通管理网关(该网关在网络规划时就已确定),但物理机上的
auto_agw、auto_sgw等网元却ping不通该管理网关。正是由于各网元虚机无法ping通管理网关,才导致k8s纳管网元节点失败。
3. 找网络定位,尝试各种办法后,比如查看并添加iptables,查看虚机节点和物理机的路由情况,发现是物理机的网桥出现问题。
三、解决办法:
登录所有的网元物理机,执行以下步骤:
1. 执行:brctl show br-mng
发现这里br-mng网络上的网元interface都被detach了。
2. 执行:ip a | grep vnet
可以看到该物理机共有8个网络地址,而该网元物理机上共有8个网元节点,相应的br-mng也应有8个interface,但第1步却显示没有任何网元的interface。问题的就出在这个地方。
3. 执行以下命令,将8个interface添加到br-mng网络中:
brctl addif br-mng vnet0
brctl addif br-mng vnet1
brctl addif br-mng vnet2
......
brctl addif br-mng vnet8
4. 执行命令brctl show br-mng,确认是否添加正确。
5. 网元节点的状态恢复正常。
四、问题根因:
开发人员初步查看了系统日志/var/log/message,怀疑有人改变了环境,修改了网络,导致networkmanager创建的br-mng 被detached了,但按说广研院的环境是没有人擅动的,只能将系统日志和相关日志发给开发人员查找线索。