千家信息网

Longhorn怎么实现Kubernetes集群的持久化存储

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,本篇内容介绍了"Longhorn怎么实现Kubernetes集群的持久化存储"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔
千家信息网最后更新 2024年11月19日Longhorn怎么实现Kubernetes集群的持久化存储

本篇内容介绍了"Longhorn怎么实现Kubernetes集群的持久化存储"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Longhorn功能概述

  • 共享资源池:将本地磁盘或安装在计算或专用存储主机中的网络存储形成共享资源池。

  • 为容器和虚拟机创建块存储卷:你可以指定volume的大小,IOPS的需求,以及你想要的跨主机的同步replica的数量(这里的主机是指那些为volume提供存储资源的主机)。replica是在底层磁盘或网络存储上精简配置的。

  • 为每个volume创建一个专用的存储控制器:这可能是与大多数现有的分布式存储系统相比,Longhorn最具特色的功能。大多数现有的分布式存储系统通常采用复杂的控制器软件来服务于从数百到数百万不等的volume。但Longhorn不同,每个控制器上只有一个volume,Longhorn将每个volume都转变成了微服务。

  • 跨计算或存储主机调度多个replica:Longhorn会监测每一个replica的健康状况,对问题进行维修,并在必要时重新生成replica。

  • 以Docker容器的形式操作存储控制器和replica:例如,一个volume有三个replica,就意味着有四个容器。

  • 为每个volume分配多个存储"前端":常见的前端包括Linux内核设备(映射到/ dev / longhorn)和iSCSI目标。 Linux内核设备适用于支持Docker volume,而iSCSI目标更适合支持QEMU / KVM和VMware volume。

  • 创建volume快照和AWS EBS风格的备份:您可以为每个volume创建多达254个快照,这些快照可以逐个备份到NFS或S3兼容的辅助存储中。只有更改的字节会在备份操作期间被复制和存储。

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

支持任何Kubernetes集群的持久性存储

Longhorn v0.2 支持任何Kubernetes集群的持久性存储。一旦被部署到Kubernetes集群上,Longhorn会自动地将Kubernetes集群中所有节点上全部可用的本地存储聚为集群,产生复制的以及分布式的块存储。你可以在Longhorn volume上执行快照和备份操作,并将它们同步复制到多个节点上。

我们已经移植了Longhorn Manager作为Kubernetes Controller。所有Longhorn状态都存储为Custom Resource Definitions(自定义资源定义,CRD)。Longhorn也不需要单独的etcd服务器。另外,Longhorn Manager公开了执行Longhorn volume操作和快照 / 备份操作的API,这些API将在Longhorn UI和Kubernetes Flexvolume驱动程序执行操作的过程中使用。

运行下面的这条指令,就可以在你的Kubernetes集群上部署整个Longhorn存储系统:

kubectl create -f https://raw.githubusercontent.com/rancher/longhorn/v0.2/deploy/longhorn.yaml

如果你使用的是GKE,请参考这里:https://github.com/rancher/longhorn/blob/master/README.md#google-kubernetes-engine

部署之后,你可以在UI界面通过查看Kubernetes服务找到适合的IP:kubectl -n longhorn-system get svc

现在你可以使用 100.200.200.123 或通过 :12345 访问UI。

Longhorn提供了Kubernetes的完全集成。

你可以像下面这样通过Longhorn用卷备份创建一个pod:

apiVersion: v1kind: Podmetadata:  name: volume-test  namespace: defaultspec:  containers:  - name: volume-test    image: nginx:stable-alpine    imagePullPolicy: IfNotPresent    volumeMounts:    - name: voll      mountPath: /data    ports:    - containerPort: 80  volumes:  - name: voll    flexVolume:      driver: "rancher.io/longhorn"      fsType: "ext4"      options:        size: "2Gi"        numberOfReplicas: "3"        staleReplicaTimeout: "20"        fromBackup: ""

Longhorn还支持动态的provisioner。比如,你可以在Kubernetes像这样定义一个StorageClass:

kind: StorageClassapiVersion: storage.k8s.io/v1metadata:  name: longhornprovisioner: rancher.io/longhornparameters:  numberOfReplicas: "3"  staleReplicaTimeout: "30"  fromBackup: ""

接着创建一个PVC(PersistentVolumeClaim)并在Pod中使用它:

apiVersion: v1kind: PersistentVolumeClaimmetadata:  name: longhorn-volv-pvcspec:  accessModes:    - ReadWriteOnce  storageClassName: longhorn resources:    requests:      storage: 2Gi---apiVersion: v1kind: Podmetadata:  name: volume-test  namespace: defaultspec:  containers:  - name: volume-test    image: nginx:stable-alpine    imagePullPolicy: IfNotPresent    volumeMounts:    - name: volv      mountPath: /data    ports:    - containerPort: 80  volumes:  - name: volv    persistentVolumeClaim:      claimName: longhorn-volv-pvc

"Longhorn怎么实现Kubernetes集群的持久化存储"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

存储 集群 备份 快照 主机 支持 控制器 资源 控制 服务 分布式 多个 容器 系统 共享资源 内容 内核 前端 功能 只有 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 树莓派跟电脑数据库同步 上海橙影互联网科技有限公司 蔚来软件开发工程师 工业互联网云涌科技有限公司 龙华网络安全运维价格是怎样的 scum刚租的服务器就连不上 网络安全攻防实验监听 空数据库怎么制作 无线网络技术学科 宁波服务器机箱机柜加工 工业园区营销网络技术咨询热线 数据库数据类型说明 数据库附加恢复数据 眉山软件开发费用是多少 酷冷1366服务器四热管散热器 科源软件开发 护苗网络安全第二课 数据库与数据处理的先后关系 数据库缓存作用是什么 颜齐上海互联网科技有限公司 工行软件开发要什么条件 软件开发搭建服务器 大学网络技术考试题 嘉定区专业性网络技术价格咨询 中文数据库及检索策略 汇总并合并单元格数据库 网络安全指针是什么意思 英文数据库有哪些 颜齐上海互联网科技有限公司 女生网络安全工程师前景
0