• calico/node is not ready: BIRD is not ready: BGP not established with xxxxx


    问题如图

    [root@k8s-master01 ~]# kubectl  get po -n kube-system
    NAME                                       READY   STATUS     RESTARTS   AGE
    calico-kube-controllers-5f6d4b864b-5wxb9   1/1     Running    18         6d23h
    calico-node-2zllx                          0/1     Error      9          6d23h
    calico-node-766vt                          0/1     Running    10         6d23h
    calico-node-cqhzv                          1/1     Running    13         6d23h
    calico-node-k88xw                          0/1     Init:0/2   0          6d23h
    calico-node-xz5m2                          0/1     Error      7          6d23h
    

    2.查看日志

    [root@k8s-master01 ~]# kubectl describe pod calico-node-2zllx  --namespace kube-system
    ···
    ···
    umber of node(s) with BGP peering established = 1
    calico/node is not ready: BIRD is not ready: BGP not established with 192.168.0.109,192.168.0.110,192.168.0.111
    

    3.Calico 问题排障

    估计是没用发现实际真正的网卡
    

    4.解决方法

    调整calicao 网络插件的网卡发现机制,修改IP_AUTODETECTION_METHOD对应的value值。官方提供的yaml文件中,ip识别策略(IPDETECTMETHOD)没有配置,即默认为first-found,这会导致一个网络异常的ip作为nodeIP被注册,从而影响node-to-node mesh。我们可以修改成can-reach或者interface的策略,尝试连接某一个Ready的node的IP,以此选择出正确的IP。
    */
    
    // calico.yaml 文件添加以下二行
                - name: IP_AUTODETECTION_METHOD
                  value: "interface=eth.*"  # ens 根据实际网卡开头配置
     
     // 配置如下             
                - name: CLUSTER_TYPE
                  value: "k8s,bgp"
                - name: IP_AUTODETECTION_METHOD
                  value: "interface=eth.*"
                  #或者 value: "interface=eth0" # 我选用的这个
                # Auto-detect the BGP IP address.
                - name: IP
                  value: "autodetect"
                # Enable IPIP
                - name: CALICO_IPV4POOL_IPIP
                  value: "Always"
    

    6.重新在master上部署

    [root@k8s-master01 calico]# kubectl apply -f calico-etcd.yaml # 根据自己的实际文件名
    
    [root@k8s-master01 calico]# kubectl  get po -n kube-system
    NAME                                       READY   STATUS    RESTARTS   AGE
    calico-kube-controllers-5f6d4b864b-5wxb9   1/1     Running   18         7d
    calico-node-ctkd7                          1/1     Running   0          15m
    calico-node-q9gzv                          1/1     Running   0          15m
    calico-node-rgqnj                          1/1     Running   0          15m
    calico-node-sfwlh                          1/1     Running   0          15m
    calico-node-tmq7l                          1/1     Running   0          15m
    
  • 相关阅读:
    台湾9大知名开源社区
    使用SignalR打造消息总线
    ENode 2.0
    Wireshark基本介绍和学习TCP三次握手 专题
    linux tomcat 的安装
    linux 之静默安装oracle
    什么是全栈呢(转)
    Android开发自学笔记(基于Android Studio1.3.1)—1.环境搭建(转)
    hdu 4919 Exclusive or
    D
  • 原文地址:https://www.cnblogs.com/Applogize/p/14381275.html
Copyright © 2020-2023  润新知