目录

1、简介

2、实验环境

3、应用商店中部署longhorn

4、创建工作负载,使用longhorn存储

5、查看longhorn UI

6、注意事项


1、简介

    Longhorn是RancherLab为K8S环境研发的一种分布式块存储系统。Longhorn轻便易用,你可以用Kubectl命令,在一个现有的K8S集群上快速部署。结合Rancher2.0环境中的应用商店,还可以实现一键部署,为K8S集群环境提供动态的StorageClass持久卷支持。

    Longhorn使用容器和微服务方式来实现分布式块存储。它为每个块设备创建了专用存储控制器,并在多个节点上跨多个副本同步复制卷,存储控制器和副本本身也是使用K8S编排的,还支持快照和备份功能。


2、实验环境:

    4台主机使用Rancher2.0搭建K8S环境,角色及基本信息如下:

机器名      IP地址      主机角色      

Rancher2  192.168.3.220  Rancher Server

Node221  192.168.3.221  etcd、control、worker

Node222  192.168.3.222  etcd、control、worker

Node223  192.168.3.223  etcd、control、worker

图1-使用rancher2.0部署的K8S集群环境


3、应用商店中部署longhorn

图02-在全局环境下启用官方认证应用商店

图03-在项目default中的应用商店中,启动longhorn应用

图04-在项目default中的应用商店中,启动longhorn应用

图05-点击启动按钮,即可完成Longhorn部署,可通过端口访问UI管理面板

图06-部署Longhorn应用以后,各主机上的Pod状态

图07-此时集群Cluster中已经自动创建好了存储类StorageClass

4、创建工作负载

图08-在项目的工作负载中,部署一个服务

图09-部署工作负载-工作负载数量只能是1个Pod

图10-部署工作负载-卷-添加新的持久化卷声明

图11-部署工作负载时,添加卷声明的设置

图12-部署工作负载时,设置挂载点后,启动工作负载2

图13-工作负载nginx部署完毕

图14-工作负载nginx容器中的目录sss

5、查看Longhorn UI

图15-在负载均衡中访问Longhorn UI

图16-LonghornUI中能看到有3台主机和刚刚创建的1个卷

图17-LonghornUI中能看到有3台主机和刚刚创建的1个卷的副本

图18-LonghornUI中卷的信息

图19-LonghornUI中卷的信息

图20-K8S集群中持久卷的信息,已包含刚刚创建的持久卷

6、注意事项:

1、因为是块设备,工作负载中的Pod数量只能是1个;

2、因为是块设备,创建持久卷声明时,只能选择单主机读写,不能像NFS那样可以多主机读写,块设备选择多主机读写会出错。

3、Longhorn是一个正在进行中的项目,目前只发布0.1/0.2/0.3这3个版本。


参考链接:

Longhorn在Github上的链接:

https://github.com/rancher/longhorn

https://github.com/rancher/longhorn-manager

https://github.com/rancher/longhorn-ui