首页
/ Harvester升级过程中Longhorn实例管理器阻塞问题分析

Harvester升级过程中Longhorn实例管理器阻塞问题分析

2025-06-14 06:18:15作者:柯茵沙

问题现象

在Harvester从v1.4.0升级到v1.4.1-rc1版本的过程中,系统升级流程会在"Pre-drained"阶段停滞,同时节点会保持"Cordoned"状态无法继续升级。监控界面显示多个核心组件如rke2-canal、rke2-coredns和rke2-multus处于CrashLoopBackOff状态。

根本原因分析

经过深入排查,发现问题的核心在于Longhorn实例管理器(Instance Manager)的状态异常。具体表现为:

  1. 实例管理器记录显示存在一个引擎实例(pvc-9ae0e9a5-a630-4f0c-98cc-b14893c74f9e-e-0)处于运行状态
  2. 但实际上该引擎实例已经停止运行
  3. 这种状态不一致导致PodDisruptionBudget(PDB)无法被移除
  4. PDB的阻塞使得节点无法完成排水(drain)操作

技术背景

在Kubernetes集群升级过程中,节点排水是一个关键步骤。Harvester通过Longhorn提供的持久化存储能力,在排水时需要确保数据卷的安全迁移。Longhorn使用实例管理器来管理引擎和副本进程,并通过PDB来保证高可用性。

当实例管理器错误地报告引擎状态时,会导致系统错误判断数据卷仍在使用中,从而阻止节点排水操作。

解决方案

临时解决方案(适用于v1.4.x版本):

  1. 手动检查并确认所有Longhorn卷的实际状态
  2. 将受影响节点上的所有副本迁移到其他节点
  3. 删除阻塞的PDB资源
  4. 升级流程将自动继续

长期解决方案: Harvester团队将在v1.6.0版本中通过集成Longhorn 1.9版本来彻底解决此问题。新版本改进了实例管理器的状态管理机制,能够更准确地反映实际运行状态。

影响范围

该问题影响以下升级路径:

  • v1.4.0 → v1.4.1
  • v1.4.1 → v1.4.2
  • v1.4.2 → v1.4.3

最佳实践建议

  1. 在执行升级前,建议先检查所有Longhorn卷的状态
  2. 确保集群有足够的容量来容纳副本迁移
  3. 监控升级过程中的节点排水状态
  4. 准备好执行手动干预的方案

总结

Harvester升级过程中的这个阻塞问题展示了分布式存储系统在集群运维中的复杂性。通过理解Longhorn实例管理器的工作原理和Kubernetes PDB机制,管理员可以更好地诊断和解决类似问题。虽然临时解决方案有效,但建议用户规划升级到v1.6.0以获得更稳定的存储管理体验。

登录后查看全文
热门项目推荐

项目优选

收起
docsdocs
暂无描述
Markdown
827
5.48 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
494
515
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
783
1.57 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
800
1.14 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
970
2.28 K
kernelkernel
deepin linux kernel
C
32
16
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
480
312
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.01 K
766
cannbot-skillscannbot-skills
CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。
Markdown
1.26 K
808
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
647
284