首页 > 其他分享 >calico节点重启4分钟后跨节点流量才通

calico节点重启4分钟后跨节点流量才通

时间:2024-10-05 23:33:37浏览次数:10  
标签:proto 重启 calico bgp bird graceful 节点 restart

bird v0.3.3

问题现象

针对calico bgp peer+ipip模式,单个节点重启,等待4分钟以上,pod跨节点流量才通。

问题分析

k8s节点重启 -> bird进程加载bird配置文件,进入graceful restart流程和wait状态

每次尝试建立bgp peer连接时,graceful_restart_locks++。
nest/proto.c
proto_graceful_restart_lock函数

proto/bgp/bgp.c
bgp_start函数

成功建立连接时,graceful_restart_locks--。
发现变成0后,停止timer,触发graceful_restart_done。
nest/proto.c
proto_graceful_restart_unlock函数

proto/bgp/bgp.c
bgp_conn_enter_established_state函数

正常情况下,bird状态变更是,initializing -> starting -> start -> wait -> feed -> up。之后,增加其他节点子网路由到本机节点上,指向tunl0。
nest/proto.c
proto_notify_state函数
bgp状态变化时,回调proto_notify_state,更新状态并输出日志,例如bgp_conn_enter_established_state函数。

异常情况下,bird无法与其他节点bird建立bgp连接,等待240s超时时间后增加路由。
nest/protocol.h
默认graceful_restart超时时间是240s,没有参数化配置。

conf/conf.c
config_alloc函数
初始化配置

nest/proto.c
graceful_restart_init函数
hook点是graceful_restart_done,超时时间是240s。

nest/proto.c
graceful_restart_done函数
输出graceful restart done日志,遍历所有bgp连接,输出状态变成up日志,graceful_restart_locks设成0。

解决问题

人为重启节点前,确保其他节点bird进程正常;环境增加监控,确保正常。

标签:proto,重启,calico,bgp,bird,graceful,节点,restart
From: https://www.cnblogs.com/WJQ2017/p/18448726

相关文章

  • ElasticSearch之集群中的节点
    对官方文档Node的阅读笔记。ES集群由一个或者多个ES节点组成。ES集群中的节点,支持处理两类通信平面,见文档集群内节点之间的通信,官方文档称之为transportlayer。集群外的通信,处理客户端下发的请求,比如数据的CRUD,检索等,官方文档称之为HTTPlayer。通过集群内节点的通信,节点......
  • 代码随想录算法训练营day4|● 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个
    学习资料:https://programmercarl.com/0024.两两交换链表中的节点.html学习记录:24.两两交换链表中的节点(添加虚拟头节点;交换1、2节点和3、4节点时,要用1前面的cur,先保存1为temp且3保存为temp1,cur指向2,再把2指向temp,因为cur指向2后就与1没关联了)点击查看代码#Definitionforsi......
  • 单Master节点的k8s集群部署-完整版
    K8S安装步骤一、准备工作1.准备三台主机(一台Master节点,两台Node节点)如下:角色IP内存核心磁盘Master192.168.116.1314G4个55GNode01192.168.116.1324G4个55GNode02192.168.116.1334G4个55G2.关闭SElinux,因为SElinux会影响K8S部分组件无法正常......
  • apache配置默认自动重启
    1.增加环境变量.vi/root/apache-tomcat-8.5.75/bin/setenv.sh[root@app1bin]#catsetenv.shexportCATALINA_OPTS="$CATALINA_OPTS-Xms1600m"exportCATALINA_OPTS="$CATALINA_OPTS-Xmx1600m"exportCATALINA_OPTS="$CATALINA_OPTS-XX:MaxPerm......
  • 基于无线传感器网络的节点分簇算法matlab仿真
    1.程序功能描述对传感器网络进行分簇,在分簇过程中考量的有节点能量状态、节点拓扑位置、孤立节点删除等条件。与LEACH算法比较,对比如下几个方面指标:1.网络从初始状态直到首个节点因能量耗尽而死亡的持续时间。2.显示了随着时间的变化,一些节点开始死亡,整个网络的可用率下......
  • leetcode24 两两交换链表中的节点(swap-nodes-in-pairs)
    题目描述:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1] 提示:链表中节点的数......
  • [Python手撕]二叉树两节点之间的距离
    classTreeNode:def__init__(self,value=0,left=None,right=None):self.value=valueself.left=leftself.right=rightdefparent(root,p,q):ifroot==porroot==q:returnrootleft,right=None,None......
  • rabbitmq部署 从单节点到集群,到镜像
    想搭建镜像,也需要从单节点一步步往下,按顺序执行,应该不会有什么问题准备工作:1、设置主机名(根据自己主机的情况设置,主机名不能有.)hostnamectlset-hostnamenode01###节点01hostnamectlset-hostnamenode02###节点02hostnamectl--prettyhostnamectl-......
  • java-netty客户端断线重启
    背景经常会遇到netty客户端,因为网络等多种原因而断线,需要自动重连核心就是对连接服务端成功后,对ChannelFuture进行监听,核心代码如下f=b.connect("127.0.0.1",10004).sync();//(5)f.addListener(newChannelFutureListener(){......
  • neo4j 统计多个节点之间关系总和的写法-包含多个collect合并成一个并去重操作
    在使用neo4j数据库时,会遇到计算与指定节点产生关联的数量统计需求,例如指定6个节点1,2,3,4,5,6需要找出与这6个节点中4个节点有关联的节点(要求排除这6个节点的数据)先看实现查询语句:MATCH(start:person_info)-[r1]-(n)-[r2]-(end:person_info)WHEREstart.persocountIdin['1......