在K8S中Longhorn存储

2024-02-27 12:36
文章标签 云原生 存储 k8s longhorn

本文主要是介绍在K8S中Longhorn存储,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Longhorn 是用于 Kubernetes 的轻量级、可靠且功能强大的分布式块存储系统。

Longhorn 使用容器(containers)和微服务(microservices)实现分布式块存储。 Longhorn 为每个块设备卷(device volume)创建一个专用的存储控制器(storage controller), 并跨存储在多个节点上的多个副本同步复制该卷。存储控制器(storage controller)和副本(replicas)本身是使用 Kubernetes 编排的。

功能特性

  • 无单点故障的企业级分布式块存储

  • 块存储增量快照

  • 备份到辅助存储(NFS或S3兼容的对象存储)建立在高效的更改块检测之上

  • 定期快照和备份

  • 自动化(Automated)、无中断升级(non-disruptive upgrades)。您可以升级整个 Longhorn 软件堆栈,而不会中断正在运行的存储卷。

  • 直观的 GUI 仪表板

使用 Longhorn,您可以:

  • 使用 Longhorn 卷作为 Kubernetes 集群中分布式有状态应用程序的持久存储

  • 将块存储划分为 Longhorn 卷,这样无论是否有云提供商,都可以使用 Kubernetes 卷

  • 跨多个节点和数据中心复制块存储以提高可用性

  • 将备份数据存储在 NFS 或 AWS S3 等外部存储上

  • 创建跨集群灾难恢复卷,以便可以从第二个 Kubernetes 集群的备份中快速恢复来自主 Kubernetes 集群的数据

  • 安排卷的定期快照,并安排定期备份到 NFS 或 S3 兼容的辅助存储

  • 从备份恢复卷

  • 在不中断持久卷的情况下升级 Longhorn

Longhorn 带有独立的 UI,可以使用 Helmkubectl 或 Rancher app catalog 进行安装。

使用微服务简化分布式块存储

由于现代云环境需要数万到数百万的分布式块存储卷,一些存储控制器已经成为高度复杂的分布式系统。相比之下,Longhorn 可以通过将一个大块存储控制器划分为多个较小的存储控制器来简化存储系统,只要这些卷仍然可以从一个公共磁盘池构建。通过每个卷使用一个存储控制器,Longhorn 将每个卷变成了一个微服务。控制器称为 Longhorn 引擎。

Longhorn Manager 组件编排 Longhorn 引擎,使它们协同工作。

在不依赖云提供商的情况下在 Kubernetes 中使用持久化存储

Pod 可以直接引用存储,但不推荐这样做,因为它不允许 Pod 或容器是可移植的。相反,应在 Kubernetes 持久卷 (PV) 和持久卷声明 (PVC) 中定义工作负载的存储要求。使用 Longhorn,您可以指定卷的大小、IOPS 要求以及在为卷提供存储资源的主机上所需的同步副本数量。然后,您的 Kubernetes 资源可以为每个 Longhorn 卷使用 PVC 和相应的 PV, 或者使用 Longhorn 存储类(storage class)为工作负载自动创建 PV

Replicas 在底层磁盘或网络存储上进行精简配置。

跨多个计算或存储主机调度多个副本(Replicas)

为了提高可用性(availability),Longhorn 创建了每个卷的副本。副本包含卷的一系列快照,每个快照都存储来自前一个快照的更改。卷的每个副本也在一个容器中运行,因此具有三个副本的卷会产生四个容器。

每个卷的副本数量可在 Longhorn 中配置,以及将安排副本的节点。Longhorn 监控每个副本的健康状况并执行修复,并在必要时重建副本。

为每个卷分配多个存储前端

常见的前端包括 Linux 内核设备(映射在 /dev/longhorn 下)和一个 iSCSI 目标。

指定定期快照和备份操作的计划

指定这些操作的频率(每小时、每天、每周、每月和每年)、执行这些操作的确切时间(例如,每个星期日凌晨 3:00),以及保留多少定期快照和备份集。

Longhorn存储

Longhorn 在 Kubernetes 集群中使用的是每个节点的本地存储空间来创建虚拟块设备卷。这意味着 Longhorn 在每个节点上使用本地磁盘空间来存储数据。这些本地磁盘空间可以是物理硬盘、SSD、或者其他存储介质。

Longhorn 通过创建 Replica 来在不同节点上复制数据,从而确保数据的可靠性和容错性。这意味着每个 Replica 都会占用节点上的存储空间。如果在集群中启用了三个副本(replicas),那么每个节点上可能会存有三份数据的副本。

请注意,Longhorn 的设计有助于提高数据的可靠性和冗余性,但也会占用节点的存储空间。因此,在部署 Longhorn 时,需要考虑每个节点的存储容量以及集群中复制的副本数量,以确保有足够的存储空间来支持数据的存储和复制。

longhorn 的特点

Longhorn 是一个用于 Kubernetes 的开源分布式块存储系统,具有许多特点,包括但不限于:

  1. 易于部署和管理: Longhorn 可以作为标准的 Kubernetes 本地存储类插件进行安装和部署,无需外部存储设备即可提供高可靠性的持久化存储。

  2. 分布式块存储: Longhorn 提供了分布式块存储解决方案,允许用户在 Kubernetes 集群中创建可靠、容错的持久化存储卷,并通过多个 Replica 实现数据的冗余备份。

  3. 快照和备份: Longhorn 支持快照和备份功能,用户可以创建卷的快照以便后续恢复或复原,也可以备份数据到远程存储位置。

  4. 动态数据复制: Longhorn 使用动态数据复制以提高数据的冗余性和可靠性,同时确保数据在集群中的分布和均衡性。

  5. 远程复制和故障转移: Longhorn 支持异地复制和故障转移功能,可以将数据镜像到其他集群,以实现跨数据中心或跨区域的数据复制和灾难恢复。

  6. 图形用户界面(GUI): Longhorn 提供直观的 Web 界面,允许用户轻松管理存储卷、快照、备份等功能。

  7. 云原生支持: Longhorn 是为云原生环境设计的,完全集成到 Kubernetes 中,支持常见的云服务提供商,如 AWS、GCP、Azure 等。

总的来说,Longhorn 提供了一个简单、易用且功能丰富的分布式块存储解决方案,为运行在 Kubernetes 上的应用程序提供稳定可靠的持久化存储支持。

这篇关于在K8S中Longhorn存储的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/752409

相关文章

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

使用JavaScript操作本地存储

《使用JavaScript操作本地存储》这篇文章主要为大家详细介绍了JavaScript中操作本地存储的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录本地存储:localStorage 和 sessionStorage基本使用方法1. localStorage

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体