ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Longhorn v1.8.2 版本发布说明深度解读:安装升级要求、改进项与关键 Bug 修复全览

Longhorn v1.8.2 版本发布说明深度解读:安装升级要求、改进项与关键 Bug 修复全览 云原生存储高可用容器编排【免费下载链接】longhornCloud-Native distributed storage built on and for Kubernetes项目地址https://gitcode.com/gh_mirrors/lo/longhorn点击查看免费下载Longhorn v1.8.2 是面向 Kubernetes v1.25 集群的稳定修复版本重点围绕系统质量、韧性、稳定性与安全性展开包含 5 项改进、16 个 Bug 修复以及一轮 CVE 安全修复。本文以官方发布说明CHANGELOG-1.8.2.md为骨架结合当前仓库中的 Helm Chart 模板、增强提案等源码证据逐条解读每个变更背后的技术含义与实操影响帮助你在升级前评估风险、升级后快速定位排查方向。一、版本定位与安装前提Longhorn v1.8.2 属于 v1.8 系列的一个补丁版本patch release其定位不是引入新功能而是通过回移BACKPORT修复和稳定性改进来提升系统质量。发布说明开篇即明确了版本的核心目标improve system quality, resilience, stability and security。1.1 安装的 Kubernetes 版本前提[!IMPORTANT]安装 Longhorn v1.8.2 前请确保集群运行 Kubernetes v1.25 或更高版本。这是一条硬性前提Kubernetes 低于 v1.25 的集群无法正常安装 v1.8.2。原因是 v1.8 系列依赖较新的 Kubernetes API 与 CSI 规范能力老版本集群缺少相应支持。安装方式本身没有变化官方支持 Rancher、Kubectl、Helm 三条路径仓库中与之对应的是 chart/Chart.yamlHelm Chart 定义与 deploy/longhorn.yamlkubectl 直装清单以及 deploy/longhorn-okd.yamlOKD 专用清单。1.2 升级路径与版本约束[!IMPORTANT]从 Longhorn v1.7.x 或 v1.8.x低于 v1.8.2升级到 v1.8.2 前请确保集群运行 Kubernetes v1.25 或更高版本。Longhorn 只允许从受支持的版本升级。升级动作需要同时满足两层约束Kubernetes 版本目标集群必须是 v1.25Longhorn 版本源版本必须是 v1.7.x 或 v1.8.x v1.8.2即跳过多个大版本的跨版本升级不被允许。仓库中 chart/templates/preupgrade-job.yaml 与 chart/templates/postupgrade-job.yaml 的存在印证了这套升级流程Longhorn 在 Helm 升级过程中会启动独立的 Pre-upgrade / Post-upgrade Job 来执行版本检查与数据面迁移动作而 chart/values.yaml 中preUpgradeChecker相关配置jobEnabled、upgradeVersionCheck则控制这些检查是否启用。二、五项改进Improvement逐条解读v1.8.2 的改进集中在可靠性、可运维性与安全性边界四个维度全部为从后续版本回移BACKPORT到 v1.8 分支的成果。下面逐条说明其技术内涵与影响面。2.1 CSI 插件接入 longhorn-manager 增加重试逻辑issue 11027现象背景longhorn-csi-plugin在启动或运行过程中需要与longhorn-managerPod 通信例如通过 Unix socket / gRPC 调用完成卷的创建、挂载、节点发布等 CSI 操作。在集群滚动重启、manager Pod 重建或网络瞬断期间CSI 插件可能因联系不上 manager 而直接失败导致挂载操作中断。修复内容为 CSI 插件联系 longhorn-manager 的调用链增加重试retry逻辑将一次失败即返回错误改为按退避策略重试从而容忍 manager Pod 短暂的不可用窗口提升节点重启场景下 CSI 操作的健壮性。排查参考CSI 插件与 manager 之间的通信参数如managerUrl由默认设置注入见 chart/templates/default-setting.yaml 中的manager-url项CSI 组件的部署形态CSI attacher 副本数、kubelet 根目录等配置在 chart/values.yaml 的csi段attacherReplicaCount、kubeletRootDir等。2.2 升级路径中的 update 选项增加严格字段校验issue 10648现象背景Longhorn 的升级流程中某些更新操作update option对字段的合法性缺乏严格校验用户可能提交了无效或不完整的字段值而未被及时发现导致升级行为不符合预期。修复内容对升级路径中使用的 update 选项引入严格字段校验strict field validation在升级前拦截非法字段组合避免带着错误配置进入升级流程。实操提示升级前建议先导出当前设置做审计重点核对 chart/templates/default-setting.yaml 中注入的默认设置如replica-auto-balance、storage-over-provisioning-percentage、storage-minimal-available-percentage等确保所有自定义值都在合法取值范围内。2.3SettingNameV2DataEngineHugepageLimit移入危险区设置issue 10568现象背景V2 数据引擎基于 SPDK依赖 2 MiB 大页hugepage运行其大小由v2-data-engine-hugepage-limit设置控制默认值为 2048 MiB参见 enhancements/20230523-support-spdk-volumes.md 与 chart/README.md 中defaultSettings.dataEngineMemorySize的说明。该设置一旦被调小或调大直接影响 SPDK target 守护进程可用的内存量误改可能导致 V2 卷无法启动或实例管理器异常。修复内容将v2-data-engine-hugepage-limit归入danger zone危险区设置。被归入危险区的设置意味着修改需经确认UI 上会有更醒目的提示防止用户在不知情的情况下误调导致 V2 卷故障。配套源码佐证V2 数据引擎相关默认设置在 chart/values.yaml 中对应defaultSettings.dataEngineHugepageEnabled与defaultSettings.dataEngineMemorySize两个键并通过 chart/templates/default-setting.yaml 渲染为data-engine-hugepage-enabled等设置项注入系统。升级到 v1.8.2 后如需调整 V2 引擎大页大小请先确认其危险区状态谨慎评估对现存 V2 卷的影响。2.4 降低分离detached卷的自动均衡日志噪音issue 10692现象背景Longhorn 的副本自动均衡replica auto-balance调度器会周期性评估各节点/磁盘的副本分布。当集群中存在大量处于detached未挂载状态的卷时调度器仍会对这些卷进行均衡评估并反复产生日志造成日志噪音。修复内容对 detached 卷的自动均衡评估进行日志降噪减少无意义的重复日志输出同时保留真正需要管理员关注的事件。配套说明自动均衡行为由全局设置replica-auto-balance控制可选disabled/least-effort/best-effort见 chart/templates/default-setting.yaml 第 22 行其设计动机与调度细节可追溯 enhancements/20210510-automatic-rebalance-replica.md 与 enhancements/20240108-replica-auto-balance-pressured-disks.md。升级后若日志量显著下降属于本改进的预期效果不代表均衡功能失效。2.5 移除Block类型磁盘失败时的告警信息改进issue 10576现象背景当管理员尝试从节点移除Block类型的磁盘裸块设备而移除失败时原有警告信息不够明确难以快速定位失败原因。修复内容改进移除失败场景下的警告信息文案与内容让错误提示更准确地反映移除失败的状态与可能原因。实操提示Block 类型磁盘移除失败常见于磁盘仍被副本占用、设备仍处于挂载状态或底层 I/O 错误。升级后在 UI 或longhorn-manager日志中看到相关警告时应先检查该磁盘上是否仍有 replica可通过 enhancements/20200727-add-replica-eviction-support-for-disks-and-nodes.md 描述的副本驱逐流程先疏散副本再执行移除。三、十六个 Bug 修复归类解读v1.8.2 的 Bug 修复数量较多按功能域归类后更易理解其影响范围与升级价值。3.1 节点驱逐与 Backing Image 域3 项无法清理节点驱逐后的 backing image 卷副本issue 11057节点驱逐node eviction过程中副本被疏散但与之关联的 backing image 卷副本残留、无法清理。修复后驱逐流程会正确清理相关残留。驱逐节点期间 backing image 卷副本 NPE 崩溃issue 11036驱逐场景下触发了空指针异常NPE导致实例崩溃。修复补上了空值防护。v1.8.1 升级到 v1.8.2-rc1 后 V2 Backing Image 失败issue 10969跨小版本升级后 V2 引擎的 backing image 功能不可用属于升级回归类问题已在本版本修复。背景补充Backing Image 是 Longhorn 面向虚拟机场景的关键能力qcow2/raw 镜像作为卷的基座镜像同盘多副本共享一份文件支持下载/上传/卷等多种数据源其架构设计与 CRDBackingImage、BackingImageManager详见 enhancements/20210701-backing-image.md。升级到 v1.8.2 后建议对使用 backing image 的卷做一次驱逐演练以验证修复效果。3.2 备份 / 灾难恢复域4 项系统备份卡在CreatingBackingImageBackups状态无法结束issue 10748系统备份system backup在创建 backing image 备份阶段可能无限期卡住。修复后该阶段具备正确的终态判断与超时处理。DR 卷激活时未同步最新备份issue 10842灾难恢复DR卷在激活activation时没有与最新备份对齐导致恢复出的数据不是最新。修复保证了激活前同步最新备份。对分离卷批量创建备份返回 405 且浏览器控制台报错issue 10725UIUI 层对分离卷 批量备份的组合返回了错误的 HTTP 405同时错误信息泄漏到浏览器控制台。修复后该操作路径返回正确结果。多线程备份 / 恢复相关回归未在本版本出现说明本域修复聚焦终态与同步问题性能相关设计参见 enhancements/20230108-improve-backup-and-restore-efficiency-using-multiple-threads-and-compression-methods.md。实操提示若升级前已有卡在CreatingBackingImageBackups的系统备份升级后检查其是否自动收敛DR 卷激活前请确认其lastBackup已与 backup target 对齐。3.3 磁盘 / 节点管理域3 项向节点添加不存在的磁盘导致 longhorn-manager 崩溃issue 10750添加磁盘时若磁盘路径不存在原有代码缺少校验导致 manager 进程崩溃。修复后先校验磁盘存在性避免单点故障扩散。升级路径中新 backing image manager 名称冲突issue 10618创建新的 backing image manager 时命名可能与其他对象冲突naming collision导致创建失败。修复了命名生成逻辑。节点宕机后强制删除终止中的工作负载 Pod卷无法成功挂载issue 10713节点宕机与 Pod 强制删除的组合场景下卷挂载无法成功。修复补全了该场景的状态机处理。3.4 卷生命周期与 I/O 域3 项无法删除一个超大且 Not Ready 的卷issue 10742卷处于 Not Ready 且体积超大时删除路径存在缺陷修复后此类卷可正常删除。I/O 错误Harvester v1.4.1 升级期间迁移 VM 时 v1.7.2 卷出错issue 10549Harvester 环境 VM 迁移与 Longhorn v1.7.2 卷组合下出现 I/O 错误属于底层 I/O 路径问题已修复。MultiUnmapper 日志刷屏 size mismatch 警告issue 10565多路径卸载组件MultiUnmapper在特定场景下反复输出尺寸不匹配警告污染日志。修复后仅在真实错误时告警。3.5 测试与打包域3 项测试用例test_snapshot_prune_and_coalesce_simultaneously_with_backing_image失败issue 10822修复了该测试用例本身的稳定性问题保证快照剪枝snapshot prune与合并coalesce并发场景下行为符合预期。ReadyForDownload状态的支持包导致longhorn-system命名空间无法终止issue 10732支持包support bundle处于ReadyForDownload时命名空间终止流程被阻塞。修复后支持包不再阻碍命名空间清理。实例管理器镜像构建失败issue 10654修复了 instance manager 镜像构建链路中的缺陷确保新版本镜像可正常产出。3.6 加密与调度域2 项Longhorn 卷加密在 Talos Linux 1.9.x 上不生效issue 10605Talos 1.9.x 环境中卷加密功能失效修复后恢复加密卷的正常创建与挂载。相关设计背景可参考 enhancements/20221024-pv-encryption.md。副本调度器整数除零错误issue 10504replica scheduler 在某种边界条件下出现 integer divide by zero导致调度崩溃。修复补上了分母零值防护。3.7 容器内 git checkout 报错issue 10975容器化构建环境中执行git checkout时报错通常与 git 安全目录校验、权限或文件系统限制相关。修复后 CI / 容器内的源码检出流程恢复正常属于开发者体验类修复。3.8 Helm Chartpersistence.backupTargetName未被 StorageClass 模板引用issue 10964这是本版本中对部署清单最直接的修复仓库源码可以完全印证问题Helm 提供的persistence.backupTargetName值此前没有渲染到默认 StorageClass 中用户通过 Helm 设置备份目标名不会生效。修复在 chart/templates/storageclass.yaml 第 68-69 行加入了条件渲染{{- if .Values.persistence.backupTargetName }} backupTargetName: {{ .Values.persistence.backupTargetName }} {{- end }}即仅当用户显式设置该值时默认 StorageClass 的参数中才会出现backupTargetName。配套配置chart/values.yaml 第 255 行定义默认值backupTargetName: defaultchart/questions.yaml 第 1289-1296 行提供 Rancher UI 的表单入口字符串类型默认defaultchart/README.md 第 174 行同步记录该参数含义。升级提示若你此前通过 Helm 设置了persistence.backupTargetName但发现默认 StorageClass 未生效v1.8.2 升级后该值会被正确注入升级后请核对默认 StorageClass 的参数是否符合预期。四、安全修复Misc / CVE为 v1.8.2 修复 CVE 问题issue 10913本版本对依赖组件进行了 CVE 安全修补这是 v1.8.2 定位中security目标的直接体现。CVE 修复通常涉及镜像基础层、Go 依赖或配套组件版本的更新强烈建议在升级 v1.8.2 后同步更新部署清单重新拉取 deploy/longhorn-images.txt 中列出的镜像确保运行时使用的镜像与 v1.8.2 发布版本一致避免旧镜像继续携带已知漏洞。五、升级与验证建议结合本发布说明给出以下实操建议升级前检查确认集群 Kubernetes 版本 ≥ v1.25kubectl version确认当前 Longhorn 版本为 v1.7.x 或 v1.8.x v1.8.2备份 Longhorn 设置与卷状态审计自定义设置是否合法对应改进 2.2 的严格字段校验。升级方式使用 Helm 升级helm upgrade longhorn longhorn/longhorn --version 1.8.2或 kubectl 应用 deploy/longhorn.yaml升级期间观察 pre/post upgrade Job 的执行结果。升级后重点验证对应本版本修复项存在 backing image 的卷能否正常创建副本并在节点驱逐后完成清理对应 3.1 域触发一次系统备份与 DR 卷激活确认不再卡在CreatingBackingImageBackups对应 3.2 域核对默认 StorageClass 的backupTargetName参数是否按 Helm 值渲染对应 3.8 修复检查 V2 数据引擎的 hugepage 设置是否已标记为危险区对应改进 2.3观察 manager 与 CSI 插件日志确认驱逐/重连场景不再出现 NPE 与除零错误。发布后已知问题发布说明同时提示针对本版本之后新发现的问题官方会在 Release-Known-Issues 页面持续跟踪升级后如遇异常可先收集支持包support bundle注意本版本已修复其阻塞命名空间终止的问题见 3.5 域再排查。六、总结Longhorn v1.8.2 是一次典型的稳定性补丁发布改进侧聚焦 CSI 通信可靠性、升级校验、危险区设置与日志治理修复侧覆盖了 backing image 驱逐、备份/DR 同步、磁盘节点管理、卷生命周期、加密与调度等多个高风险路径并包含一轮 CVE 修复。对于生产环境用户v1.8.2 的升级价值主要在于驱逐与备份路径的健壮性提升以及Helm StorageClass 参数生效的修复升级前务必确认 Kubernetes ≥ v1.25 与源版本处于受支持范围内升级后按本文第五节的验证清单逐项核对即可平稳落地。赞分享云原生存储高可用容器编排【免费下载链接】longhornCloud-Native distributed storage built on and for Kubernetes项目地址https://gitcode.com/gh_mirrors/lo/longhorn点击查看免费下载相关推荐Multilingual-E5-Small部署指南如何在CPU/GPU环境下高效运行文本嵌入模型Multilingual E5 Small部署指南如何在CPU/GPU环境下高效运行文本嵌入模型 Multilingual E5 Small是一款强大的多语言云原生存储高可用容器编排django CMS 3.7.1 版本说明解析关键 Bug 修复与功能改进深度解读django CMS 3.7.1 版本说明解析关键 Bug 修复与功能改进深度解读 django CMS 3.7.1 是 3.7 系列的一个维护性小版本聚焦CMS后端Rally 高级配置技巧自定义测试场景和性能指标收集Rally 高级配置技巧自定义测试场景和性能指标收集 Rally 作为 Elasticsearch 的宏基准测试框架提供了强大的自定义测试场景和性能指标收集云原生存储高可用容器编排上一篇Lighthouse深度解析如何从网站性能问题识别到优化方案实施下一篇EasyOCR实战从印刷体到手写体的多语言文本识别终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表