pengdott 2024-11-07 15:01 采纳率: 66.7%
浏览 2
问题最晚将于11月15日00:00点结题

K8S部署二进制集群过程中calico一直报错

  1. 参考的calico官网,安装calico过程如下:
    (1)、tigera-operator.yaml和custom-resources.yaml文件下载到服务器上

(2)、执行kubectl create -f tigera-operator.yaml,安装过程未报错

(3)、修改配置文件custom-resources.yaml,加入如下配置内容
nodeAddressAutodetectionV4:
interface: ens33
确定所有网卡是ens33

(4)、执行kubectl create -f custom-resources.yaml,安装过程未报错

(5)、查看calico相关pod,pod处于running状态

NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-6696b5fc97-hlb84   1/1     Running   0          2m33s
calico-node-28flc                          1/1     Running   0          2m34s
calico-node-p9tcg                          1/1     Running   0          2m34s
calico-typha-9f54f8447-sgpnl               1/1     Running   0          2m34s
csi-node-driver-67h28                      2/2     Running   0          2m33s
csi-node-driver-wgwvs                      2/2     Running   0          2m33s

(6)、执行7.

kubectl taint nodes --all node-role.kubernetes.io/control-plane-


```,结果如下:

```xml
taint "node-role.kubernetes.io/control-plane" not found
taint "node-role.kubernetes.io/control-plane" not found

后查看pod状态也正常

2.查看calico pod相关信息始终报错:

Normal   Pulling    27m   kubelet            Pulling image "docker.io/calico/pod2daemon-flexvol:v3.28.2"
  Normal   Scheduled  27m   default-scheduler  Successfully assigned calico-system/calico-node-rhrj9 to dk8s-work1
  Normal   Pulled     27m   kubelet            Successfully pulled image "docker.io/calico/pod2daemon-flexvol:v3.28.2" in 10.195808051s
  Normal   Created    27m   kubelet            Created container flexvol-driver
  Normal   Started    27m   kubelet            Started container flexvol-driver
  Normal   Pulling    27m   kubelet            Pulling image "docker.io/calico/cni:v3.28.2"
  Normal   Started    26m   kubelet            Started container install-cni
  Normal   Pulled     26m   kubelet            Successfully pulled image "docker.io/calico/cni:v3.28.2" in 51.718175648s
  Normal   Created    26m   kubelet            Created container install-cni
  Normal   Pulling    26m   kubelet            Pulling image "docker.io/calico/node:v3.28.2"
  Normal   Pulled     25m   kubelet            Successfully pulled image "docker.io/calico/node:v3.28.2" in 50.979018706s
  Normal   Created    25m   kubelet            Created container calico-node
  Normal   Started    25m   kubelet            Started container calico-node
  Warning  Unhealthy  25m   kubelet            Readiness probe failed: calico/node is not ready: BIRD is not ready: Error querying BIRD: unable to connect to BIRDv4 socket: dial unix /var/run/calico/bird.ctl: connect: connection refused
  Warning  Unhealthy  25m   kubelet            Readiness probe failed: 2024-11-06 07:59:09.401 [INFO][231] confd/health.go 202: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with 192.168.100.186


或:

Warning  Unhealthy       42m   kubelet          Readiness probe failed: calico/node is not ready: BIRD is not ready: Error querying BIRD: unable to connect to BIRDv4 socket: dial unix /var/run/bird/bird.ctl: connect: no such file or directory
```xml


其它说明:
custom-resources.yaml即使不加入配置nodeAddressAutodetectionV4:
      interface: ens33
也报同样的错误。

工作节点端口查看如下看上去似乎已经建立了连接:
netstat -ltunp | grep 179
tcp        0      0 0.0.0.0:179             0.0.0.0:*               LISTEN      12607/bird

lsof -i:179
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bird    12607 root    7u  IPv4  68970      0t0  TCP *:bgp (LISTEN)
bird    12607 root    8u  IPv4  76064      0t0  TCP dk8s-work1:bgp->dk8s-work2:55595 (ESTABLISHED)

/var/run/bird/bird.ctl文件calico刚部署完是存在的,但是重启节点后不存在了

通过ip link命令查看没有br开头的多余虚拟网卡,并且删除了一部分state DOWN的网卡也没起作用,一直的bird的错误。
版本信息如下:OS:CENTOS7,
calico version:v3.28.2
K8S:v1.21.10

网上搜索了几个方法(如加入nodeAddressAutodetectionV4识别网卡的配置)均不起作用,请教如何处理此错误




  • 写回答

14条回答 默认 最新

  • 专家-皆知 2024-11-07 15:01
    关注

    以下回复引自免费微信小程序:皆我百晓生。 如问题解决,还请采纳。如仍有疑问,请回复留言或私信博主,以便获得更精准的帮助。

    首先,请确保您已经正确地将TIGERA OPERATOR 和 CUSTOM RESOURCES 文件复制到了服务器上。然后,在KUBERNETES 1.19版本开始支持的命令行工具中运行以下命令来创建一个名为“CALICO”的集群:

    KUBECTL CREATE CLUSTER --NAME=MY-CLUSTER --CALICO=TRUE
    

    这将在您的KUBERNETES集群中启用CALICO服务,并将其作为主配置添加到KUBERNETES控制台。

    如果您遇到错误,可能是因为在安装CALICO时遇到了问题。尝试以下步骤来解决此问题:

    1. 检查CALICO版本: 在安装前,请确保CALICO已从官方发布或源代码获取。

      • 如果使用的是官方发布的CALICO包,请确保它与您的系统兼容。
      • 对于未公开的CALICO发行版,可以尝试更新到最新版本。
    2. 安装CALICO依赖库: 安装必要的依赖库,例如CURLNMAP等。

      CURL HTTPS://DOWNLOAD.DOCKER.COM/LINUX/UBUNTU/GPG | SUDO APT-KEY ADD -
      ECHO "DEB [ARCH=AMD64 SIGNED-BY=/PATH/TO/YOUR/KEYFILE] HTTPS://DOWNLOAD.DOCKER.COM/LINUX/UBUNTU $(LSB_RELEASE -CS) STABLE" | SUDO TEE /ETC/APT/SOURCES.LIST.D/DOCKER.LIST > /DEV/NULL
      SUDO APT-GET UPDATE && SUDO APT-GET INSTALL DOCKER-CE
      
    3. 设置环境变量: 设置KUBERNETES的环境变量以使CALICO能够正确工作。

      EXPORT KUBECONFIG=/USR/LOCAL/ETC/KUBERNETES/KUBECONFIG
      EXPORT CAFILE=/USR/LOCAL/SHARE/CA-CERTIFICATES/CALICO-CA.CRT
      EXPORT DOCKER_HOST=DOCKER.MYHOST.DOCKER.INTERNAL
      EXPORT DOCKER_TLS_VERIFY=0
      EXPORT DOCKER_CERT_PATH=$DOCKER_HOST:/VAR/LIB/DOCKER/CERTS
      EXPORT DOCKER_CERTIFICATES=$DOCKER_CERT_PATH
      EXPORT DOCKER_TLS_CLIENTS=5
      EXPORT DOCKER_TLS_SERVERS=5
      EXPORT DOCKER_TLS_INSECURE_CERTS=1
      EXPORT DOCKER_TLS_DETERMINISTIC=1
      EXPORT DOCKER_TLS_MAX_WAYBACK=120000
      EXPORT DOCKER_TLS_SEED=12345678901234567890
      
    4. 配置CALICO: 使用CALICO命令启动CALICO服务:

      CALICO START
      

      这将启动一个名为“CALICO”服务的容器。

    5. 测试: 确保CALICO服务能够正常工作。通过运行以下命令查看是否成功启动:

      CALICO STATUS
      

    现在,您的KUBERNETES集群应该已经启用了CALICO服务并能够在多个环境下安全且高效地进行计算和通信。如果仍然出现错误,您可以尝试重启KUBERNETES服务或重新安装CALICO。

    评论

报告相同问题?

问题事件

  • 创建了问题 今天

悬赏问题

  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥100 栈回溯相关,模块加载后KiExceptionDispatch无法正常回溯了
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错