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

发布时间:2021-09-01 15:09:58 作者:chen
来源:亿速云 阅读:225

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

Longhorn功能概述

支持任何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

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

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

Longhorn提供了Kubernetes的完全集成。

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

apiVersion: v1
kind: Pod
metadata:
  name: volume-test
  namespace: default
spec:
  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: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: longhorn
provisioner: rancher.io/longhorn
parameters:
  numberOfReplicas: "3"
  staleReplicaTimeout: "30"
  fromBackup: ""

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

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: longhorn-volv-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: longhorn
 resources:
    requests:
      storage: 2Gi
---
apiVersion: v1
kind: Pod
metadata:
  name: volume-test
  namespace: default
spec:
  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集群的持久化存储”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. 如何搭建完整的Kubernetes集群
  2. 如何安装配置Longhorn并实现持久化存储

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

kubernetes longhorn

上一篇:如何遍历json中的array

下一篇:Windows系统中怎么安装Pygame

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》