目录

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集群环境

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

3、应用商店中部署longhorn

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

4、创建工作负载

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

5、查看Longhorn UI

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

图18-LonghornUI中卷的信息

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

图19-LonghornUI中卷的信息

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

Rancher2.0中部署Longhorn分布式存储实验-LMLPHP

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

04-14 07:43