当前位置: 代码迷 >> 综合 >> Calico node ‘10.248.xx.79‘ is already using the IPv4 address 10.248.xx.113
  详细解决方案

Calico node ‘10.248.xx.79‘ is already using the IPv4 address 10.248.xx.113

热度:137   发布时间:2023-10-22 17:46:21.0

1.故障描述

在原来的集群上纳管一台主机10.248.xx.113,由于10.248.xx.113主机kubelet的配置文件里的hostname没有修改,还用的10.248.xx.79的主机IP,导致在master查询不到node节点。Node没办法加入到集群中。将kubelet配置文件修改完以后,在集群中可以查询到node的节点信息,但是calico一直起不来。

2.故障分析

还是先查看报错,然后在根据报错来针对性解决。
查看报错,报如下错误:
startup/startup.go 299: Early log level set to info
] startup/startup.go 315: Using NODENAME environment for node name
2020-12-16 09:12:31.688 [INFO][8] startup/startup.go 327: Determined node name: 10.248.xx.113
startup/startup.go 359: Checking datastore connection
startup/startup.go 383: Datastore connection verified
] startup/startup.go 104: Datastore is ready
startup/startup.go 425: Initialize BGP data
startup/startup.go 678: Using autodetected IPv4 address 10.248.xx.113/20 on matching interface eth0
2020-12-16 09:12:31.710 [INFO][8] startup/startup.go 495: Node IPv4 changed, will check for conflicts
2020-12-16 09:12:31.714 [WARNING][8] startup/startup.go 1010: Calico node ‘10.248.xx.79’ is already using the IPv4 address 10.248.xx.113.
2020-12-16 09:12:31.715 [INFO][8] startup/startup.go 263: Clearing out-of-date IPv4 address from this node IP=“10.248.xx.113/20”
2020-12-16 09:12:31.720 [WARNING][8] startup/startup.go 1214: Terminating

查看日志可以查看出是79这个ip,抢占了113这个地址。导致113没办法使用有效的ip地址了。看报错肯定是之前误操作有脏数据导致的。

3.解决方法

1.查看113主机的calico的/var/lib/calico/nodename这个文件里的内容,果然,文件的ip地址是79的,而不是113的,将内容清楚掉。重启kubelet,kube-proxy服务。将pod重启,看是否可以创建calico了。结果还是不行,还是报之前的错。这个方法也不行,继续排查。
2.在etcd中查询calico的信息,看是否可以查看到脏数据。命令如下,最后没有查询到calico的有效信息。看来这个方法也不行
ETCDCTL_API=3 etcdctl --endpoints=http://10.248.xx.44:1159 get “/calico” --prefix --keys-only | sed ‘/^\s*KaTeX parse error: Undefined control sequence: \s at position 137: …-only | sed '/^\?s?*/d’ | grep -v event
查询到节点的这个信息.
/registry/csinodes/10.248.xx.113
/registry/csinodes/10.248.xx.44
/registry/csinodes/10.248.xx.79
/registry/csinodes/10.248.xx.97
使用route -n 查看这两台主机的路由信息,网络显示不正常。
后来将这两个一直出现问题的节点从集群中delete掉,重新加入到集群中,查看集群状态正常,查看calico的pod的状态,显示已经起来了。问题解决了。

  相关解决方案