内容纲要
概要描述
在安装TOS的时候,偶发性出现单个节点TOS Master启动失败的多网卡环境。apiserver报错
Unable to find suitable network address error='unable to select an IP from default routes'.'Try to set the AdvertiseAddress directly or provide a valid BindAddress to fix this.
本文描述出现上述问题的解决方法
详细描述
故障描述
客户多网卡环境下TOS Master偶发性会启动失败
查看pod启动状态,可以看到是apiserver启动失败
kubectl get pods -n kube-system
去对应节点查看找到container id
docker ps -a | grep apiserver
根据上面执行的结果找到对应的container id,查看日志
docker logs [container-id]
以下是报错的截图信息
故障原因
集群服务器有多块网卡,tos-market 通过终端访问容器时,terminal应用的apiserver IP配置未及时更新导致无法通过此方式访问应用
解决方法
确定tos的版本
新版本的TOS已经独立出Manager了,所以用下面的方法确认tos的版本
docker images | grep tos
如果非新版本,tos的版本即manager的版本,确认manager的版本即可
docker images | grep manager
备份tos-apiserver.manifest
cp /var/lib/transwarp-manager/master/content/meta/services/TOS/[版本]/templates/tos-apiserver.manifest /var/lib/transwarp-manager/master/content/meta/services/TOS/[版本]/templates/tos-apiserver.manifest.init
修改tos-apiserver.manifest
vim /var/lib/transwarp-manager/master/content/meta/services/TOS/[版本]/templates/tos-apiserver.manifest
对文件做如下修改,主要将两个bind-address 从127.0.0.1 改成0.0.0.0
添加一行 –advertise-address=${localIp}
修改成如下格式
TOS 配置服务,重启对应节点的tos master服务即可。