news 2026/5/3 7:56:33

为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/5/2 22:46:04

开题报告还能玩起来?这款AI工具把学术写作变成了“游戏通关”

凌晨两点,宿舍的灯还亮着。面对屏幕上那片令人窒息的空白文档和导师那条“明天必须交初稿”的消息,你感到前所未有的压力。开题报告这个看似简单的任务,却成了无数学生学术道路上的第一道“鬼门关”——选题没方向、文献找不到、框架理不清、…

作者头像 李华
网站建设 2026/5/3 3:26:58

当毕业论文遇上AI:智能工具如何重塑学术写作体验

夜深了,图书馆的灯光下,键盘敲击声连续不断。毕业论文季,这个让无数学子辗转难眠的时期,已经随着人工智能技术的发展悄然发生变化。在众多承诺能“简化写作流程”的AI工具中,一款名为虎贲等考AI智能写作的平台正试图通…

作者头像 李华
网站建设 2026/5/1 10:42:52

9款AI写论文工具深度实测:哪一款能成为你的毕业神助攻?

面对堆积如山的文献和步步紧逼的截止日期,这位机械工程专业的研究生将论文的最后一章交给了虎贲等考AI。五分钟后,AI不仅完成了内容填充,还附带了一份详尽的引文清单,其中两篇文献恰好是他之前在知网上标记过、却忘记引用的关键论…

作者头像 李华
网站建设 2026/5/1 11:47:33

写论文软件哪个好?甩掉“幻觉”和虚构,找对能交付“真实”的那个

输入同样的关键词,别人拿到的是一篇引经据典、数据图表齐备的论文初稿,而你得到的却是一份满是“查无此文”的虚构引用和经不起推敲的空洞论述——这或许是2025年最扎心的学术效率鸿沟。深夜的图书馆里,键盘敲击声此起彼伏。李同学盯着屏幕上…

作者头像 李华
网站建设 2026/5/2 22:40:57

掌握web控件定位技巧,提升页面操作效率

在做 Web 自动化时,最根本的就是操作页面上的元素,首先要能找到这些元素,然后才能操作这些元素。工具或代码无法像测试人员一样用肉眼来分辨页面上的元素。那么要如何定位到这些元素,本章会介绍各种定位元素的方法。 web 控件定位…

作者头像 李华
网站建设 2026/5/1 10:42:28

SpringBoot 中如何利用 Junit 实现单元测试?

在SpringBoot中&#xff0c;可以利用JUnit来实现单元测试。 以下是一般的JUnit单元测试步骤&#xff1a; 1.添加JUnit依赖 在Maven的pom.xml文件中添加JUnit依赖&#xff1a; <dependency>    <groupId>junit</groupId>    <artifactId>j…

作者头像 李华