首页 > 编程语言 >Kubernetes故障篇:calico/node is not ready: BIRD is not ready

Kubernetes故障篇:calico/node is not ready: BIRD is not ready

时间:2023-01-03 14:11:53浏览次数:47  
标签:node kubectl Kubernetes IP value yaml ready calico

一、问题产生

1. k8s集群部署后发现calico的pod未通过健康检查,如下所示:

 kubectl get pods -A -o wide

image

可以看到 k8s-mater节点未Ready,会导致主节点访问node显示拒接连接。即: curl 10.0.169.144 显示为拒绝连接

image

2. 通过命令kubectl describe pods calico-node-7cnct -n kube-system,查看其中一个pod信息,如下所示:

kubectl describe pods calico-node-8lb6j -n kube-system

image

二、解决方法

解决方案:调整calicao网络插件的网卡发现机制,修改IP_AUTODETECTION_METHOD对应的value值。官方提供的yaml文件中,ip识别策略(IPDETECTMETHOD)没有配置,即默认为first-found,这会导致一个网络异常的ip作为nodeIP被注册,从而影响node-to-node mesh。我们可以修改成can-reach或者interface的策略,尝试连接某一个Ready的node的IP,以此选择出正确的IP。

操作如下:

2.1 查看本机网卡信息

image

2.2 修改 calico.yaml文件

# 修改calico的yaml文件,添加配置项
vim calico.yaml

# Cluster type to identify the deployment type
- name: IP_AUTODETECTION_METHOD #增加内容
  value: "interface=ens.*" 或者 value: "interface=ens33"     #增加内容
# 下面内容是calico.yaml里默认的不修改  
- name: CLUSTER_TYPE
  value: "k8s,bgp"
# Auto-detect the BGP IP address.
- name: IP
  value: "autodetect"
# Enable IPIP
- name: CALICO_IPV4POOL_IPIP
  value: "Always"

2.3 重新在master节点上部署

kubectl apply -f calico.yaml

2.4 查看结果

kubectl get pods -n kube-system

image

curl 10.0.169.144

image

标签:node,kubectl,Kubernetes,IP,value,yaml,ready,calico
From: https://www.cnblogs.com/codertl/p/17021964.html

相关文章

  • Time goes out of sync on a node running CentOS/RHEL 7
    概述系统未配置为使用ntpd服务来同步时间和日期。CentOS/RHEL7使用systemd来管理服务。timedatectl实用程序作为systemd的一部分分发,允许您查看和更改系统时钟......
  • Linux安装node
    说明亲测在Ubuntu环境下安装成功如果包管理器中有合适版本建议使用apt-get或yum等命令直接安装以Ubuntu系统为例,可以使用如下命令查看nodejs版本sudoapt-getupdat......
  • Kubernetes监控手册09-监控ETCD
    写在前面ETCD是Kubernetes控制面的重要组件和依赖,Kubernetes的各类信息都存储在ETCD中,所以监控ETCD就显得尤为重要。ETCD在Kubernetes中的架构角色如下(只与APIS......
  • Kubernetes监控手册05-监控Kubelet
    上一篇我们介绍了如何监控Kube-Proxy,Kube-Proxy的/metrics接口没有认证,相对比较容易,这一篇我们介绍一下Kubelet,Kubelet的监控相比Kube-Proxy增加了认证机制,相对更复杂一些......
  • Node.js躬行记(26)——接口拦截和页面回放实验
    最近在研究Web自动化测试,之前做了些实践,但效果并不理想。对于QA来说,公司的网页交互并不多,用手点点也能满足。对于前端来说,如果要做成自动化,就得维护一堆的脚本......
  • Kubernetes(k8s) kubectl annotate常用命令
    kubectl在$HOME/.kube目录中查找一个名为config的配置文件。可以通过设置KUBECONFIG环境变量或设置--kubeconfig参数来指定其它kubeconfig文件。本文主要介绍K......
  • Kubernetes 部署 ELK
    Kubernetes部署ELK项目背景k8s集群搭建后,平时运维过程中不仅要观察监控平台,查看集群运行情况,还要在集群出现问题时,对问题点进行及时定位,由于集群内pod过多后,日志定位比......
  • gluon 基于浏览器+nodejs 的桌面应用开发框架
    gluon基于浏览器+nodejs的桌面应用开发框架,好处是相对轻量,只使用系统浏览器,对于nodejs可以支持包含以及不包含模式目前支持chrome以及firfox浏览器器,打包的应用相对比......
  • 一招轻松解决node内存溢出问题
    node启动项目造成内存溢出的解决办法我们在使用node启动项目的时在项目较大的时候,可能会造成内存溢出。为什么会造成内存溢出呢?要回答上面这个问题,我们要了解node中是如......
  • Kubernetes(k8s) kubectl convert常用命令
    kubectl在$HOME/.kube目录中查找一个名为config的配置文件。可以通过设置KUBECONFIG环境变量或设置--kubeconfig参数来指定其它kubeconfig文件。本文主要介绍K......