Docker系列——k8s-calico网络问题定位
2020-02-29 本文已影响0人
那些年搬过的砖
k8s的安装和初始化参考https://kuboard.cn/
master初始化完成后,通过kubectl get pod -n kube-system -o wide
命令查看pod状态是正常的。
但是当worker节点初始化完成,join到集群后,再通过上述命令查看状态,发现master的calico故障
![](https://img.haomeiwen.com/i10173293/ece05da28ebca2e5.png)
通过
kubectl describe pods calico-node-2bjp9 -n kube-system
命令查看日志,发现是calico未准备好,所以与worker节点的BGP连接未建立成功。![](https://img.haomeiwen.com/i10173293/f1bc6daedec5c340.png)
而calico默认是侦测主机的第一个网口,但是通过ipaddr命令可以看到我们的服务器是有两个网口
![](https://img.haomeiwen.com/i10173293/af5ab8f0b9f06f07.png)
这样的话就需要修改calico的yaml配置,不能使用默认的。需要指定ip的识别策略,以下是修改前后对比,高亮部分为增加代码
![](https://img.haomeiwen.com/i10173293/c9fa2f001e32e0c1.png)
修改了配置之后就不能使用官网的快速初始化脚本,而选择手工初始化
curl -sSL https://kuboard.cn/install-script/v1.17.x/init_master.sh | sh -s 1.17.2
1、选择手工初始化
![](https://img.haomeiwen.com/i10173293/37ca5406cd2ca6ac.png)
2、手动初始化脚本中删除如下代码,以便使用我们修改之后的配置文件
![](https://img.haomeiwen.com/i10173293/7f18dec86575cdad.png)
再次调用手工初始化脚本
sudo sh init_master.sh
再执行worker节点的初始化。所有都初始化完成后再查看状态可以看出calico都已处于正常状态
![](https://img.haomeiwen.com/i10173293/f2543e443b2d8cf1.png)