news 2026/4/16 10:28:59

为K8s集群装上“云硬盘”:高可用块存储Longhorn离线部署指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
为K8s集群装上“云硬盘”:高可用块存储Longhorn离线部署指南

全文开始

在Kubernetes上运行数据库、消息队列等有状态应用时,我们总会面临一个灵魂拷问:当Pod在节点间迁移或节点故障时,如何保证数据不丢失,并快速恢复服务?原生K8s的卷管理提供了基础能力,但在生产环境中,我们往往需要企业级的存储特性:如跨节点的数据高可用、秒级创建的数据快照,以及可编排的备份恢复策略。

Longhorn应运而生,它是一款轻量级、功能强大且完全开源的云原生分布式块存储系统。它直接运行在你的K8s集群内,将每个节点的本地硬盘聚合起来,为集群提供如同公有云“云硬盘”般的网络块存储服务。其最大的魅力在于极简的设计哲学:通过为每个卷启动一个专属的存储控制器(Controller)和数据副本引擎(Engine),实现了细粒度的管理和故障隔离

本文将带你深入部署和配置Longhorn,为你集群中的有状态应用,筑起一道可靠的数据防线。

为什么用 Longhorn

Longhorn作为云原生存储方案,核心优点如下:

  1. 极简的云原生集成:作为K8s原生应用,安装即是Operator,通过CSI驱动无缝集成,管理逻辑与K8s完全一致。
  2. 极致的高可用与容错:每个存储卷(Volume)独立控制器(Controller)与副本引擎(Engine),实现故障的细粒度隔离与秒级自动故障转移。
  3. 强大的数据运维能力:支持秒级创建一致性快照、基于快照的链式增量备份,并可一键将备份恢复到新卷或异地集群。
  4. 轻量级与可视化:无外部中间件依赖,资源占用小;提供清晰直观的Web UI,使分布式存储的监控和管理一目了然。
  5. 开源与企业级特性:100%开源,具备多副本、数据压缩等企业级功能,是构建on-premise私有云存储栈的可靠选择。

总结:Longhorn以K8s原生的方式,为有状态应用提供了操作简便、稳定可靠、功能全面的持久化存储解决方案。

数据盘准备

# 准备一块独立的硬盘挂在到 /var/lib/longhornmkfs.ext4 /dev/sdbmkdir/var/lib/longhorn# 设置自动挂载echo'/dev/sdb /var/lib/longhorn ext4 defaults 0 0'>>/etc/fstab systemctl daemon-reloadmount-a

安装依赖

该组建依赖iscsi

yuminstall-y dump iscsi-initiator-utils systemctlenableiscsid --now systemctl status iscsid

安装 Longhorn

这里只展示了部分yaml文件,完整的yaml文件有三千多行,建议文末下载资料包,里面有完整可用的longhorn.yaml文件

---# Builtin: "helm template" does not respect --create-namespaceapiVersion:v1kind:Namespacemetadata:name:longhorn-system---# Source: longhorn/templates/priorityclass.yamlapiVersion:scheduling.k8s.io/v1kind:PriorityClassmetadata:name:"longhorn-critical"labels:app.kubernetes.io/name:longhornapp.kubernetes.io/instance:longhornapp.kubernetes.io/version:v1.9.1description:"Ensure Longhorn pods have the highest priority to prevent any unexpected eviction by the Kubernetes scheduler under node pressure"globalDefault:falsepreemptionPolicy:PreemptLowerPriorityvalue:1000000000---# Source: longhorn/templates/serviceaccount.yamlapiVersion:v1kind:ServiceAccountmetadata:name:longhorn-service-accountnamespace:longhorn-systemlabels:app.kubernetes.io/name:longhornapp.kubernetes.io/instance:longhornapp.kubernetes.io/version:v1.9.1---# Source: longhorn/templates/serviceaccount.yamlapiVersion:v1kind:ServiceAccountmetadata:name:longhorn-ui-service-accountnamespace:longhorn-systemlabels:app.kubernetes.io/name:longhornapp.kubernetes.io/instance:longhornapp.kubernetes.io/version:v1.9.1---# Source: longhorn/templates/serviceaccount.yamlapiVersion:v1kind:ServiceAccountmetadata:name:longhorn-support-bundlenamespace:longhorn-systemlabels:app.kubernetes.io/name:longhornapp.kubernetes.io/instance:longhornapp.kubernetes.io/version:v1.9.1

创建应用

# 1. 先导入镜像,镜像在资源包里面有,总共有三个nerd load -i longhorn_images_1.tar nerd load -i longhorn_images_2.tar nerd load -i longhorn_images_3.tar# 2. 将镜像导入到私有镜像仓库或者每个worker节点都导入这三部分镜像# 3. 创建应用kubectl apply -f longhorn.yaml

等待所有的pod创建完毕,在服务中可以看到一个服务名为longhorn-frontend的服务,给该服务手动添加一个外部IP地址(externalIPs),外部IP地址可以是k8s任意一个节点的IP地址,然后浏览器访问该IP地址即可。

全文结束

当你在Longhorn的简洁UI中,看到第一个持久卷(PV)成功创建、并顺利挂载到Pod时,就意味着你的K8s集群获得了一项至关重要的原生能力:对数据生命周期的自主控制权

Longhorn的成功部署,不仅仅是安装了一个存储驱动。它标志着你的集群从“仅能运行无状态应用”进阶到“可稳健承载核心有状态服务”的新阶段。它提供的可视化操作、精细化的监控和基于快照的备份流,将存储运维从黑盒变成了白盒,极大地降低了数据管理的风险和复杂度。

至此,你已为集群装上了可靠的“云硬盘”。接下来,便是以数据安全为基石,去设计和部署那些真正承载业务价值的核心应用了。

实践之后:你计划使用Longhorn为哪个有状态应用(如MySQL、Redis等)提供存储?在结合特定应用时,你调整了哪些关键的存储参数?欢迎在评论区分享你的场景与配置心得。

资料领取

关注微信公众号云原生运维之道,找到原文:https://mp.weixin.qq.com/s/5i9D9kbleHHI3j_zK7-ybw

或者加 v:qiaoyebufan,备注 “领取k8s资料”。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:25:55

QML中关联C++ Model 类的两种核心方式

QML 中关联 C Model 类的两种核心方式:import 和 setContextProperty。 这两种方式的本质区别在于 Model 的提供者和作用域。 方式一:注册为 QML 类型并 Import 使用 这种方式是将 C 类注册到 QML 类型系统中,使其在 QML 中像一个内置类型一样…

作者头像 李华
网站建设 2026/4/16 4:53:28

Python软件工具有哪些?

Python生态的强大,离不开丰富且高效的软件工具加持,它们覆盖开发、调试、数据分析、自动化等全场景,选对工具能让效率翻倍。那么Python软件工具有哪些?请看下文。 Python开发涉及多种软件工具,主要包括集成开发环境、代码编辑器、…

作者头像 李华
网站建设 2026/4/12 10:13:39

智能排版新时代:2025年6款论文工具精准适配LaTeX学术规范

2025 热门 AI 论文工具哪个好?6 款适配 LaTeX 模板与论文格式规范六款热门 AI 论文工具对比总结以下是2025年热门AI论文工具的快速对比,帮助您在写作论文时选择合适工具。这六款工具均支持LaTeX模板和论文格式规范,适配性强。总结基于核心功能…

作者头像 李华
网站建设 2026/4/10 15:37:12

一文带你彻底搞懂 Python 编程进阶之闭包

什么是闭包:在函数嵌套的情况下,内部的函数使用外部函数中的变量,并且外部函数返回了内部函数,我们将这个内部函数称之为闭包。 闭包是实现装饰器的基础,通过装饰器可以在不修改原函数代码的情况下增强其功能。 在Py…

作者头像 李华
网站建设 2026/4/15 11:02:37

大模型时代,人类如何守住不可替代性并抓住新机遇

本文探讨了在大模型时代如何避免被AI替代的两大策略:一是守住人类独有的情感与创造力,这些是AI无法复制的核心价值;二是拥抱AI带来的新机遇,如AI大模型应用开发工程师和训练师等高薪岗位。文章强调AI是人类战友而非对手&#xff0…

作者头像 李华
网站建设 2026/4/16 12:14:53

大模型部署完全指南:从网页版到私有化,一篇搞定!建议收藏学习

文章详细介绍了大模型的四种使用方式和部署方案:网页版、API接口调用、企业专属大模型训练和私有化部署,并分析了各自的适用场景。文章强调,私有化部署虽然理想,但成本高昂、更新困难、技术门槛高,除非有强科研或数据安…

作者头像 李华