描述:集群刚初始化以后创建了 calico 之后,发现有两个 pod 一直处于 0/1 状态,这些错误就好像牛皮膏药一样很烦人。
这个问题是由于节点多网卡引起的,我查看了一下我的节点网卡,有七八个,然后指定为了 eth1 重新 apply calico.yaml 之后成功。

            - name: IP_AUTODETECTION_METHODvalue: "interface=eth1"

另外一个错误,但是修复方式是相同的

查看任意一个 calico 日志:

[root@1 ~]# kubectl get pod -n kube-system -owide
NAME                                            READY   STATUS              RESTARTS   AGE     IP          NODE                    NOMINATED NODE   READINESS GATES
calico-kube-controllers-6d4bfc7c57-87gnm        0/1     ContainerCreating   0          3m53s   <none>      10-1-0-34-mesh-node     <none>           <none>
calico-node-bvhjc                               0/1     CrashLoopBackOff    5          3m54s   10.1.0.34   10-1-0-34-mesh-node     <none>           <none>
calico-node-zp9tv                               0/1     CrashLoopBackOff    5          3m54s   10.1.0.42   10-1-0-42-mesh-master   <none>           <none>
coredns-9d85f5447-kcp7d                         0/1     ContainerCreating   0          4m35s   <none>      10-1-0-34-mesh-node     <none>           <none>
coredns-9d85f5447-qc2kh                         0/1     ContainerCreating   0          4m35s   <none>      10-1-0-34-mesh-node     <none>           <none>
etcd-10-1-0-42-mesh-master                      1/1     Running             0          4m41s   10.1.0.42   10-1-0-42-mesh-master   <none>           <none>
kube-apiserver-10-1-0-42-mesh-master            1/1     Running             0          4m40s   10.1.0.42   10-1-0-42-mesh-master   <none>           <none>
kube-controller-manager-10-1-0-42-mesh-master   1/1     Running             0          4m40s   10.1.0.42   10-1-0-42-mesh-master   <none>           <none>
kube-proxy-blm42                                1/1     Running             0          4m14s   10.1.0.34   10-1-0-34-mesh-node     <none>           <none>
kube-proxy-gcj7k                                1/1     Running             0          4m35s   10.1.0.42   10-1-0-42-mesh-master   <none>           <none>
kube-scheduler-10-1-0-42-mesh-master            1/1     Running             0          4m41s   10.1.0.42   10-1-0-42-mesh-master   <none>           <none>
[root@1 ~]#
[root@1 ~]# kubectl logs -f calico-node-zp9tv -n kube-system
2021-04-28 03:34:31.876 [INFO][9] startup/startup.go 379: Early log level set to info
2021-04-28 03:34:31.876 [INFO][9] startup/startup.go 395: Using NODENAME environment for node name
2021-04-28 03:34:31.876 [INFO][9] startup/startup.go 407: Determined node name: 10-1-0-42-mesh-master
2021-04-28 03:34:31.877 [INFO][9] startup/startup.go 439: Checking datastore connection
2021-04-28 03:34:31.883 [INFO][9] startup/startup.go 463: Datastore connection verified
2021-04-28 03:34:31.883 [INFO][9] startup/startup.go 112: Datastore is ready
2021-04-28 03:34:31.886 [INFO][9] startup/customresource.go 101: Error getting resource Key=GlobalFelixConfig(name=CalicoVersion) Name="calicoversion" Resource="GlobalFelixConfigs" error=the server could not find the requested resource (get GlobalFelixConfigs.crd.projectcalico.org calicoversion)
2021-04-28 03:34:31.904 [INFO][9] startup/startup.go 505: Initialize BGP data
2021-04-28 03:34:31.905 [WARNING][9] startup/startup.go 769: Unable to auto-detect an IPv4 address using interface regexes [ens.*]: no valid host interfaces found
2021-04-28 03:34:31.905 [WARNING][9] startup/startup.go 527: Couldn't autodetect an IPv4 address. If auto-detecting, choose a different autodetection method. Otherwise provide an explicit address.
2021-04-28 03:34:31.905 [INFO][9] startup/startup.go 343: Clearing out-of-date IPv4 address from this node IP=""
2021-04-28 03:34:31.909 [WARNING][9] startup/startup.go 1331: Terminating
Calico node failed to start

可以到看到有这样的错误:startup/startup.go 769: Unable to auto-detect an IPv4 address using interface regexes [ens.*]: no valid host interfaces found

正则表达式没有找到 [ens.*],查看一下本机使用的是什么网卡

[root@1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc mq state UP group default qlen 1000link/ether fa:16:3e:a7:11:9a brd ff:ff:ff:ff:ff:ffinet 10.1.0.42/24 brd 10.1.0.255 scope global noprefixroute dynamic eth0valid_lft 65868sec preferred_lft 65868secinet6 fe80::d662:97b7:3976:db84/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:ab:79:73:d5 brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft forever

果然,本机使用的是 eth0 这样肯定是找不到的。修改一下 calico 配置

          env:- name: IP_AUTODETECTION_METHODvalue: "interface=ens.*"# Use Kubernetes API as the backing datastore.- name: DATASTORE_TYPEvalue: "kubernetes"# Wait for the datastore.- name: WAIT_FOR_DATASTOREvalue: "true"# Set based on the k8s node name.- name: NODENAMEvalueFrom:fieldRef:fieldPath: spec.nodeName# Choose the backend to use.- name: CALICO_NETWORKING_BACKENDvalueFrom:configMapKeyRef:name: calico-configkey: calico_backend

value: "interface=ens.*" 修改为直接指定网卡名称也可以以 .* 结尾匹配。

更新 calico 之后再一次查看 pod

[root@1 ~]# kubectl get pod -n kube-system -owide
NAME                                            READY   STATUS    RESTARTS   AGE   IP              NODE                    NOMINATED NODE   READINESS GATES
calico-kube-controllers-6d4bfc7c57-87gnm        1/1     Running   0          60m   192.168.22.65   10-1-0-34-mesh-node     <none>           <none>
calico-node-785cd                               1/1     Running   0          27s   10.1.0.42       10-1-0-42-mesh-master   <none>           <none>
calico-node-vb5m7                               1/1     Running   0          27s   10.1.0.34       10-1-0-34-mesh-node     <none>           <none>
coredns-9d85f5447-kcp7d                         1/1     Running   0          60m   192.168.22.66   10-1-0-34-mesh-node     <none>           <none>
coredns-9d85f5447-qc2kh                         1/1     Running   0          60m   192.168.22.67   10-1-0-34-mesh-node     <none>           <none>
etcd-10-1-0-42-mesh-master                      1/1     Running   0          60m   10.1.0.42       10-1-0-42-mesh-master   <none>           <none>
kube-apiserver-10-1-0-42-mesh-master            1/1     Running   0          60m   10.1.0.42       10-1-0-42-mesh-master   <none>           <none>
kube-controller-manager-10-1-0-42-mesh-master   1/1     Running   0          60m   10.1.0.42       10-1-0-42-mesh-master   <none>           <none>
kube-proxy-blm42                                1/1     Running   0          60m   10.1.0.34       10-1-0-34-mesh-node     <none>           <none>
kube-proxy-gcj7k                                1/1     Running   0          60m   10.1.0.42       10-1-0-42-mesh-master   <none>           <none>
kube-scheduler-10-1-0-42-mesh-master            1/1     Running   0          60m   10.1.0.42       10-1-0-42-mesh-master   <none>           <none>

完成

k8s calico 插件错误:Number of node(s) with BGP peering established = 0 calico/node is not ready: BIRD is相关推荐

  1. Calico 报错 calico/node is not ready: BIRD is not ready: BGP not established with(导致 K8S 集群网络无法使用)

    错误 今天不知道怎么回事,一台机器的calico-node报错,也就是无法初始化正常 Events:Type Reason Age From Message---- ------ ---- ---- ...

  2. K8s网络插件Flannel,Calico

    文章目录 一.K8s网络插件flannel与calico 1. k8s网络解决方案 容器虚拟化网络方案 基于隧道 基于路由 2. CNI(容器网络接口) flannel与calico 选型比较 3. ...

  3. 浅谈k8s cni 插件

    目前不论是个人还是企业,在使用k8s时,都会采用CNI作为集群网络方案实现的规范. 在早先的k8s版本中,kubelet代码里提供了networkPlugin,networkPlugin是一组接口,实 ...

  4. K8S核心插件-coredns服务

    K8S核心插件-coredns服务 目录 K8S核心插件-coredns服务 1 coredns用途 1.1 为什么需要服务发现 2 coredns的部署 2.1 获取coredns的docker镜像 ...

  5. k8s服务发布错误排查

    转载请注明出处:k8s服务发布错误排查 K8s错误排查步骤是我们使用k8s的必经之路,可以参考如下步骤: 首先查看pod的情况,使用命令: kubectl get pods 输出如下: [zzq@lo ...

  6. 外部表报错:ORA-29913: 执行 ODCIEXTTABLEOPEN 调出时出错 ORA-29400: 数据插件错误KUP-04043: table column not found in ext

    oracle 为11g,报以下错误: ORA-29913: 执行 ODCIEXTTABLEOPEN 调出时出错 ORA-29400: 数据插件错误KUP-04043: table column not ...

  7. Silverlight插件错误消息

    这个话题列表错误消息,来自本地代码实现Silverlight插件,和本地代码级别的对象树和XAML解析器.错误消息主要是相关的,如果你使用JavaScript API技术用于错误处理(OnError) ...

  8. Java 开发者如何入门 Node.js 英文原文:Getting Started with Node.js for the Java Developer

    首先, 我必须得承认,作为一个有着十多年开发经验的java开发者,我已经形成了解决绝大部分问题的固有套路,尽管它们很多时候显得笨重和繁琐. 比如说如果要读取一个文件,那应该就是初始化一个Buffere ...

  9. node/js 漏洞_6个可用于检查Node.js中漏洞的工具

    node/js 漏洞 Vulnerabilities can exist in all products. The larger your software grows, the greater th ...

  10. 深入浅出Node.js(一):什么是Node.js(转贴)

    以下内容转自:http://www.infoq.com/cn/articles/what-is-nodejs/ 作者:崔康 [编者按]:Node.js从2009年诞生至今,已经发展了两年有余,其成长的 ...

最新文章

  1. paddle中的自动求解梯度 : autograd.backward
  2. 如何在Windows下编译OpenSSL?
  3. Android透明到白色滑动渐变,Android中Toolbar随着ScrollView滑动透明度渐变效果实现...
  4. Codeforces Round #568 (Div. 2)网卡垫底记
  5. 看了这张图你还会想着用MonoDroid来开发Android应用吗?
  6. 1、数据结构的基本逻辑结构、存储结构和运算
  7. 数据结构与算法-散列表
  8. 西门子1500更改IP地址
  9. WPF定制实现自己的分页控件并配合DataGrid使用
  10. 迷宫 动画 java_Java实现可视化迷宫
  11. kubelet启动pod源码分析(三)
  12. 在线培训考核系统源码
  13. listview增大条目间距
  14. 如何锻炼自己的口才?
  15. android usb 电视,手机连接电视机的办法很多,连接效果也有很大差异,下面为大家介绍...
  16. 万字文肝Redis基础知识
  17. 怀念吗?那年下课回宿舍的日子
  18. 2.20 货币兑换-设置流程
  19. 如何培养数据分析的思维?
  20. [note] 电磁场与微波课组(二) 波动光学(1)

热门文章

  1. dns服务器优化 360,360超级dns解析速度提升10倍
  2. 申请并部署阿里云SSL免费证书详细流程
  3. 什么是Power Apps?
  4. 新机Switch OLED真机实测分享
  5. MySQL生成测试数据相关脚本(持续更新)
  6. SpringBoot 通用项目配置
  7. 二叉树(知道中序遍历和后序遍历得到先序遍历)
  8. Oracle转换Postgres
  9. 亦真亦幻,A股区块链板块含金量几何?
  10. 量化投资学习——行业轮动规律