当前位置: 首页 > article >正文

Calico-Node Pod 启动时 READY 状态卡在 0/1 排查流程

Calico Node 启动失败故障表现发现请求集群 demo 入口时卡住并且对应 Pod 没有新的日志输出rootce-demo-1:~# kubectl get pods -n deepflow-otel-spring-demo -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES db-demo-0 1/1 Running 0 2d1h 10.244.81.203 ce-demo-3 none none nacos-0 1/1 Running 0 2d1h 10.244.142.37 ce-demo-1 none none svc-item-588b4cfcc9-zkvpd 1/1 Running 0 2d1h 10.244.142.36 ce-demo-1 none none svc-order-5f67c67555-ds7bj 1/1 Running 0 2d1h 10.244.228.140 ce-demo-2 none none svc-stock-b9df64d4b-bsxs5 1/1 Running 0 2d1h 10.244.142.38 ce-demo-1 none none svc-user-7c5c7b488f-4zjdc 1/1 Running 0 2d1h 10.244.81.204 ce-demo-3 none none web-shop-5d495d8cbc-lnpxq 1/1 Running 0 2d1h 10.244.228.139 ce-demo-2 none none rootce-demo-1:~# curl 10.244.228.139:8090/shop/full-test ## 等待很久后报错 curl: (28) Failed to connect to 10.244.228.139 port 8090 after 133345 ms: Could not connect to server ## 此处新开终端查看日志后再次请求,发现没有新的日志 rootce-demo-1:~# kubectl logs -f -n deepflow-otel-spring-demo web-shop-5d495d8cbc-lnpxq --tail 20排查流程在客户端抓包发现请求后一直建连失败从客户端 IP 看出识别到 Server IP 是 Pod IP所以直接走了 calico 网口转发tcpdump -v -i any dst 10.244.228.139 -w pod.pcaprootce-demo-1:~# ip a s vxlan.calico 30499: vxlan.calico: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1450 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether 66:e0:bb:93:52:4f brd ff:ff:ff:ff:ff:ff inet 10.244.142.0/32 scope global vxlan.calico valid_lft forever preferred_lft forever由上数据怀疑是 ce-demo-2 节点 calico 问题查看后发现对应节点 calico-node 运行异常此组件作用可参考官网 calico/node 配置说明 和 calico 组件架构rootce-demo-1:~# kubectl get pods -n calico-system -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES calico-kube-controllers-86596856c4-w7nsl 1/1 Running 0 2d9h 10.244.228.132 ce-demo-2 none none calico-node-n2b4b 1/1 Running 0 2d9h 10.51.0.102 ce-demo-3 none none calico-node-p4k7s 1/1 Running 0 2d9h 10.51.0.100 ce-demo-1 none none calico-node-sbxrk 0/1 Running 0 44h 10.51.0.101 ce-demo-2 none none calico-typha-75c74d6ffd-6xq2j 1/1 Running 0 2d9h 10.51.0.100 ce-demo-1 none none calico-typha-75c74d6ffd-fkf6b 1/1 Running 0 2d9h 10.51.0.102 ce-demo-3 none none csi-node-driver-72pkg 2/2 Running 0 2d9h 10.244.142.1 ce-demo-1 none none csi-node-driver-8sjvc 2/2 Running 0 2d9h 10.244.81.195 ce-demo-3 none none csi-node-driver-skj6v 2/2 Running 0 2d9h 10.244.228.130 ce-demo-2 none noneCalico 启动 calico-node 时会根据主机的网络接口自动选择一个 IP 地址作为节点的 IPv4Address默认是自动探测autodetect。查看三台节点对应的值发现此 ip 不是对应节点的 ens160rootce-demo-1:~# kubectl get node -o yaml | grep IPv4Address projectcalico.org/IPv4Address: 10.51.0.100/24 projectcalico.org/IPv4Address: 10.4.0.1/24 projectcalico.org/IPv4Address: 10.51.0.102/24ce-demo-2 节点查看 10.1.0.1 对应 ip 网络设备的详细信息可以看出这是一个网桥bridge设备用于容器间通信/外部访问rootce-demo-2:~# ip address show nerdctl0 686: nerdctl0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether b2:90:e4:5b:f4:d1 brd ff:ff:ff:ff:ff:ff inet 10.4.0.1/24 brd 10.4.0.255 scope global nerdctl0 valid_lft forever preferred_lft forever rootce-demo-2:~# ip -d link show nerdctl0 686: nerdctl0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether b2:90:e4:5b:f4:d1 brd ff:ff:ff:ff:ff:ff promiscuity 0 allmulti 0 minmtu 68 maxmtu 65535 bridge forward_delay 1500 hello_time 200 max_age 2000 ageing_time 30000 stp_state 0 priority 32768 vlan_filtering 0 vlan_protocol 802.1Q bridge_id 8000.b2:90:e4:5b:f4:d1 designated_root 8000.b2:90:e4:5b:f4:d1 root_port 0 root_path_cost 0 topology_change 0 topology_change_detected 0 hello_timer 0.00 tcn_timer 0.00 topology_change_timer 0.00 gc_timer 240.02 vlan_default_pvid 1 vlan_stats_enabled 0 vlan_stats_per_port 0 group_fwd_mask 0 group_address 01:80:c2:00:00:00 mcast_snooping 1 no_linklocal_learn 0 mcast_vlan_snooping 0 mcast_router 1 mcast_query_use_ifaddr 0 mcast_querier 0 mcast_hash_elasticity 16 mcast_hash_max 4096 mcast_last_member_count 2 mcast_startup_query_count 2 mcast_last_member_interval 100 mcast_membership_interval 26000 mcast_querier_interval 25500 mcast_query_interval 12500 mcast_query_response_interval 1000 mcast_startup_query_interval 3125 mcast_stats_enabled 0 mcast_igmp_version 2 mcast_mld_version 1 nf_call_iptables 0 nf_call_ip6tables 0 nf_call_arptables 0 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 tso_max_size 524280 tso_max_segs 65535 gro_max_size 65536 rootce-demo-2:~# brctl show nerdctl0 bridge name bridge id STP enabled interfaces nerdctl0 8000.b290e45bf4d1 no veth76f5219bCalico 默认配置通过 first-found 模式从所有接口中第一个有 IP 的接口选一个从 ce-demo-2 节点 calico-node log time 看出首先看到的是 nerdctl0接口遍历顺序由宿主机内核/Netlink 返回的接口顺序决定常见情况下与接口 ifindex创建顺序/系统里登记的编号相关如果 nerdctl0 在系统里排序靠前例如创建得更早或者 ifindex 更靠前first-found 就会先看到它。rootce-demo-1:~# kubectl describe daemonset calico-node -n calico-system | grep IP_AUTODETECTION_METHOD IP_AUTODETECTION_METHOD: first-found rootce-demo-1:~# kubectl logs -n calico-system calico-node-sbxrk -c calico-node | grep -i nerdctl0 2025-07-15 07:51:58.079 [INFO][9] startup/autodetection_methods.go 103: Using autodetected IPv4 address on interface nerdctl0: 10.4.0.1/24 2025-07-15 07:52:02.351 [INFO][87] felix/int_dataplane.go 1431: Linux interface state changed. ifIndex686 ifaceNamenerdctl0 stateup 2025-07-15 07:52:02.351 [INFO][87] felix/int_dataplane.go 1475: Linux interface addrs changed. addrsset.Set{10.4.0.1} ifaceNamenerdctl0 2025-07-15 07:52:02.351 [INFO][87] felix/int_dataplane.go 2098: Received interface update msgintdataplane.ifaceStateUpdate{Name:nerdctl0, State:up, Index:686} 2025-07-15 07:52:02.351 [INFO][87] felix/int_dataplane.go 2125: Received interface addresses update msgintdataplane.ifaceAddrsUpdate{Name:nerdctl0, Addrs:set.Typed[string]{10.4.0.1:set.v{}}} 2025-07-15 07:52:02.351 [INFO][87] felix/hostip_mgr.go 84: Interface addrs changed. updateintdataplane.ifaceAddrsUpdate{Name:nerdctl0, Addrs:set.Typed[string]{10.4.0.1:set.v{}}} 2025-07-15 07:52:02.413 [INFO][87] felix/vxlan_mgr.go 597: VXLAN device parent changed from to nerdctl0 ipVersion0x4 rootce-demo-1:~# kubectl logs -n calico-system calico-node-sbxrk -c calico-node | grep -i ens160 2025-07-15 07:52:02.348 [INFO][87] felix/int_dataplane.go 1431: Linux interface state changed. ifIndex2 ifaceNameens160 stateup 2025-07-15 07:52:02.348 [INFO][87] felix/int_dataplane.go 1475: Linux interface addrs changed. addrsset.Set{10.51.0.101} ifaceNameens160 2025-07-15 07:52:02.349 [INFO][87] felix/int_dataplane.go 2098: Received interface update msgintdataplane.ifaceStateUpdate{Name:ens160, State:up, Index:2} 2025-07-15 07:52:02.349 [INFO][87] felix/int_dataplane.go 2125: Received interface addresses update msgintdataplane.ifaceAddrsUpdate{Name:ens160, Addrs:set.Typed[string]{10.51.0.101:set.v{}}} 2025-07-15 07:52:02.349 [INFO ][87] felix/hostip_mgr.go 84: Interface addrs changed. updateintdataplane.ifaceAddrsUpdate{Name:ens160, Addrs:set.Typed[string]{10.51.0.101:set.v{}}} 2025-07-16 06:17:42.649 [INFO][87] felix/int_dataplane.go 1475: Linux interface addrs changed. addrsset.Set{10.51.0.101,fe80::20c:29ff:febb:1bdc} ifaceNameens160 2025-07-16 06:17:42.649 [INFO][87] felix/int_dataplane.go 2125: Received interface addresses update msgintdataplane.ifaceAddrsUpdate{Name:ens160, Addrs:set.Typed[string]{10.51.0.101:set.v{}, fe80::20c:29ff:febb:1bdc:set.v{}}} 2025-07-16 06:17:42.649 [INFO][87] felix/hostip_mgr.go 84: Interface addrs changed. updateintdataplane.ifaceAddrsUpdate{Name:ens160, Addrs:set.Typed[string]{10.51.0.101:set.v{}, fe80::20c:29ff:febb:1bdc:set.v{}}}由于 Calico 官方文档中也有注明first-found 模式为使用第一个接口不包括 Docker 网桥等本地接口上的第一个有效 IP 地址建议根据不同需求选择不同配置方式本文采用的指定接口方式。还需要额外解释下first-found 文档中描述的 the first valid IP address on the first interface (excluding local interfaces such as the docker bridge). 只是举例他的默认排除项中并不包括 nerdctl0所以它会被当作一个合法候选接口。## 注需要看 Calico 部署方式当前环境通过 Calico Tigera Operator 自定义资源部署无法直接更改 DaemonSet rootce-demo-1:~# kubectl edit daemonset calico-node -n calico-system ## 找到或添加这个变量 - name: IP_AUTODETECTION_METHOD ## 由于几台机器网卡名称都是 ens160,此处写网卡名或正则都可以 value: interfaceens.*需要更改 Calico 的自定义资源参数官网链接搜索nodeAddressAutodetectionV4后有具体参数rootce-demo-1:~# kubectl get Installation NAME AGE default 2d10h rootce-demo-1:~# kubectl edit installation default nodeAddressAutodetectionV4: ## 默认使用此配置 ##firstFound: true ## 删掉后添加指定接口: interface: ens160 ## 查看更新结果 rootce-demo-1:~# kubectl get pods -n calico-system -o wide | grep calico-node calico-node-4fndv 1/1 Running 0 104s 10.51.0.101 ce-demo-2 none none calico-node-8n5qr 1/1 Running 0 39s 10.51.0.100 ce-demo-1 none none calico-node-rxhsf 1/1 Running 0 72s 10.51.0.102 ce-demo-3 none none rootce-demo-1:~# kubectl describe daemonset -n calico-system calico-node | grep IP_AUTODETECTION_METHOD IP_AUTODETECTION_METHOD: interfaceens160验证更新后效果rootce-demo-1:~# curl 10.244.228.139:8090/shop/full-test ; echo {count:1,elapsed:209,elapsedAvg:209,startAt:2025-07-17 13:33:55.116,stopAt:2025-07-17 13:33:55.325,success

相关文章:

Calico-Node Pod 启动时 READY 状态卡在 0/1 排查流程

Calico Node 启动失败 故障表现 发现请求集群 demo 入口时卡住,并且对应 Pod 没有新的日志输出 rootce-demo-1:~# kubectl get pods -n deepflow-otel-spring-demo -o wide NAME READY STATUS RESTARTS AGE IP …...

Linux日志高效搜索:从基础grep到journalctl实战技巧

1. Linux日志搜索:运维工程师的必备技能 每次服务器出现异常,第一反应是什么?没错,就是查日志。作为在Linux系统摸爬滚打多年的老运维,我见过太多新手面对海量日志时的手足无措。其实日志排查就像破案,关键…...

关于爬虫源影视资源设置

1.首先目前的omnibox的版本已更新到2.0.3版本,之前的配置会丢失,原本的资源都会无法使用,这里以新版本增加数据源,看完以下教程再下载脚本。 2.添加爬虫源,这里以猫眼资源为主测试: 增加脚本之后,点击保存即可! 复制以下脚本,修复改site_api即可,一般公用的资源都是正…...

【无标题】修改+删除顶层class

# 最顶层的class信息如何删除-- 步骤1:删除该班级学生关联的成绩(先删最底层score表) DELETE FROM score WHERE studentNo IN (SELECT studentNo FROM student0 WHERE classNo210601);-- 步骤2:删除该班级的所有学生(再…...

Java Web 入门学习笔记:Servlet 请求响应与登录功能实战

一、开篇:今日学习核心与目标学习背景:Java Web 入门阶段核心 ——Servlet 与 HTTP 请求响应交互学习目标:掌握 HttpServletRequest/HttpServletResponse 核心用法实现「登录表单提交→Servlet 验证→页面重定向」完整流程解决实操中 404、中…...

AI编程革命:重塑程序员未来(一)

AI编程时代到来AI不会让程序员消失,但会深刻重塑这个职业。当代码生成变得轻而易举,程序员 的角色将从“代码编写者”升级为“问题解决者”与“架构设计师”。未来的核心竞争力,在于 理解复杂业务、设计系统逻辑,并用人类独有的创…...

K均值算法(C++版)

选用K均值算法对一串整形数据(100行,100列)进行聚类。输出两个结果文件:1)第一个输出结果文件为cluster_centers.txt,其中输出聚类得到的各区域(聚类)的中心,以及每个聚类…...

Nginx 高可用、负载均衡与 HTTPS 配置实战(一)

Nginx作为当下最主流的开源反向代理与Web服务器,凭借轻量、高性能、高并发的特性,成为企业级服务入口的首选方案。在生产环境中,单节点Nginx存在单点故障风险,并发请求过高会导致服务卡顿,同时HTTP明文传输存在数据泄露…...

bilibili-api技术解析:如何解决视频标识符转换核心问题

bilibili-api技术解析:如何解决视频标识符转换核心问题 【免费下载链接】bilibili-api 哔哩哔哩常用API调用。支持视频、番剧、用户、频道、音频等功能。原仓库地址:https://github.com/MoyuScript/bilibili-api 项目地址: https://gitcode.com/gh_mir…...

11. v4 版本升级指南

11. v4 版本升级指南 1. 概述 Tailwind CSS v4 是一个重大版本更新,从 JavaScript 配置转向 CSS 优先的配置方式。 1.1 主要变化 变化v3v4配置方式tailwind.config.jsCSS 文件 (theme)安装方式postcss tailwindcsstailwindcss/vite 等暗色模式dark: 前缀相同&a…...

告别硬编码!用Rule-Engine 1.0.0重构你的Java业务逻辑(附订单折扣实战)

告别硬编码!用Rule-Engine 1.0.0重构你的Java业务逻辑(附订单折扣实战) 每次电商大促前夜,技术团队最怕听到的一句话是什么?"折扣规则又改了!"——这往往意味着通宵修改代码、紧急测试和冒着风险…...

脑网络通信指标——扩散策略的流图指标

和平均首达时间一样,这个指标也是脑网络扩散通信方式的一个指标。这个指标的计算公式也是非常云里雾里,不找原文献推公式看不懂的。 首先给公式: 流图矩阵中的一条边:FG(t)ij = (e^(-tL))ijsj 其中sj = ∑jAij,Aij 就是两个节点之间的结构连接强度,sj就是j节点的强度;…...

【黑金云课堂笔记】第一~二期FPGA知识点总结

知识卡片一:【FPGA 基础篇】开启硬件编程之门FPGA 的本质: FPGA(现场可编程门阵列)并非在运行软件程序,而是在构建电路本身。用户可以通过 Verilog/VHDL 等硬件描述语言,在芯片出厂后随时重新配置其内部逻辑…...

实战应用:基于openclaw在快马平台开发招聘信息采集系统

最近在做一个招聘信息分析的小项目,需要从各大招聘网站采集数据。经过一番调研,发现openclaw这个工具在数据采集方面表现相当不错,特别是在处理复杂页面和反爬机制上很有优势。下面分享一下我在InsCode(快马)平台上开发这个系统的实战经验。 …...

新手零基础入门:借助快马AI生成带注释的微信小程序示例代码

作为一个刚接触微信小程序开发的新手,我最近在InsCode(快马)平台上尝试了一个特别适合零基础学习的实践项目。这个平台最让我惊喜的是,只需要用自然语言描述需求,就能快速生成带详细注释的完整代码,这对理解小程序开发流程帮助很大…...

基于深度学习的FasterRCNN水下图像复原

项目概述:Waternet_FasterRCNN 本项目旨在结合深度学习技术进行水下图像的还原与分析,综合应用 WaterNet 和 Faster R-CNN 来完成以下功能: 水下图像还原:利用 WaterNet 修复和增强水下图像质量。色板检测与提取:通过 …...

别再让AI瞎猜了!5个实战案例教你写出让Vibe Coding一次成功的提示词

别再让AI瞎猜了!5个实战案例教你写出让Vibe Coding一次成功的提示词 当你在Vibe Coding平台上输入一串提示词,满心期待地按下生成按钮,结果却得到一个与你想象中完全不同的产物——这种经历相信很多开发者都不陌生。为什么AI总是"误解&q…...

Win11Debloat:让Windows系统重获新生的一站式自动化优化方案

Win11Debloat:让Windows系统重获新生的一站式自动化优化方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter …...

腾讯云端Openclaw+飞书 多机器人配置全攻略(新手友好版)

前言:随着AI自动化工具的普及,Openclaw凭借强大的自主执行能力,成为很多人提升效率的首选;而飞书作为高效协同工具,其机器人功能可无缝融入日常工作流。当两者结合,配置多机器人实现分工协作(如…...

Cursor Pro免费激活终极指南:3步永久解锁AI编程神器

Cursor Pro免费激活终极指南:3步永久解锁AI编程神器 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial…...

深度解析ZLUDA:AMD显卡运行CUDA应用的全新解决方案

深度解析ZLUDA:AMD显卡运行CUDA应用的全新解决方案 【免费下载链接】ZLUDA CUDA on AMD GPUs 项目地址: https://gitcode.com/gh_mirrors/zlu/ZLUDA ZLUDA是一个革命性的开源项目,它让AMD显卡能够直接运行未经修改的CUDA应用程序,为AM…...

基础语法篇总结——从入门到精通

基础语法篇总结——从入门到精通 系列专栏:Python 100天从新手到大师 当前进度:Day 01-30 / 100 阅读时长:8 分钟 难度等级:⭐⭐ 一、本篇回顾 基础语法篇共 30 篇文章,涵盖了 Python 编程的核心基础: 知识体系 基础语法篇 (30 篇) ├── 基础入门 (8 篇) │ ├──…...

计算机毕业设计:Python智能二手车数据可视化推荐系统 Flask框架 requests爬虫 协同过滤推荐算法 可视化 汽车之家 机器学习(建议收藏)✅

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与…...

数据结构与算法学习笔记

java一.数据结构简介1. 为什么要有数据结构?数据太多、太乱 → 无法高效处理 → 必须结构化2. 数据结构的两大分类逻辑结构:数据之间的关系(怎么理解)物理结构:内存中的存储方式(怎么实现)3. 逻…...

英飞凌TC3XX时钟系统实战:从PLL配置到CCU分频的避坑指南

英飞凌TC3XX时钟系统实战:从PLL配置到CCU分频的避坑指南 在嵌入式系统开发中,时钟系统如同人体的神经系统,为整个芯片提供精准的时序控制和同步信号。作为英飞凌AURIX™系列中的旗舰产品,TC3XX微控制器凭借其高度可配置的时钟架构…...

G-Helper:重塑华硕硬件控制体验的轻量级开源解决方案

G-Helper:重塑华硕硬件控制体验的轻量级开源解决方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Sca…...

为什么要使用幂等防重复提交,它的逻辑是什么对比其他的来说有什么优势

好,这个问题非常关键,尤其是在金融、支付、电商、表单提交流水线等场景,理解“为什么用幂等 防重复提交”和“它和其他方案比的优势”是做高可靠系统的核心。一、为什么要做幂等防重复提交?1️⃣ 重复请求是现实世界里的必然在真…...

DeepSeek总结的 PostgreSQL 19:为 UPDATE/DELETE 添加 FOR PORTION OF 子句

原文地址:https://www.depesz.com/2026/04/02/waiting-for-postgresql-19-add-update-delete-for-portion-of/ 等待 PostgreSQL 19:为 UPDATE/DELETE 添加 FOR PORTION OF 子句 2026 年 4 月 1 日,Peter Eisentraut 提交了一个补丁&#xf…...

对在aarch64 Linux环境编译安装的CinderX补充测试

前文最后说,CinderX报错不能用,这不对,我在其github存储库上提了这个issue,alexmalyshev回复 I think that’s actually just a warning that you’re getting but things should be working after that?Right, this is just a l…...

springcloud项目如何禁用三方依赖的拦截器

背景: 原始代码中有一个自定义的通用依赖,这个依赖中有很多通用方法和拦截器供整个系统使用。 需求: 禁用其中一个拦截器,保留其他方法和拦截器,过滤器等。 拦截器介绍 原有拦截器,自己封装了一个jdk&#…...