文档章节

GlusterFS-Kubernetes云原生存储

openthings
 openthings
发布于 2018/06/09 09:16
字数 953
阅读 242
收藏 2

GlusterFS-Kubernetes云原生存储

gluster-kubernetes 为Kubernetes管理员提供了快速部署GlusterFS的一个机制,可以把GlusterFS作为原生存储服务部署到已存的Kubernetes集群之中。这里,GlusterFS像任何其它的Kubernetes应用一样管理和编排,这是最为快捷的释放GlusterFS作为动态存储提供者实现持久的GlusterFS存储卷的方法。

项目相关组件

  • Kubernetes, 容器集群管理系统。
  • GlusterFS, 可伸缩存储系统。
  • heketi, GlusterFS的RESTful volume管理接口。

演示教程

社区演示和视频在 here.

>>> Video demo of the technology! <<<

文档

快速开始

如果你已经有一个现成的kubernetes集群希望使用,确认下满足这里的要求:setup guide

该项目包括 vagrant setup,在vagrant/ 目录下,用于在虚拟机中启动 Kubernetes 集群进行试验。为了运行vagrant setup, 确认下你的机器满足下面的条件:

  • 4GB of memory
  • 32GB of storage minimum, 112GB recommended
  • ansible
  • vagrant
  • libvirt or VirtualBox

在 vagrant/ 目录下,运行 ./up.sh 即可启动集群。

注意: 如果你计划多次运行./up.sh, vagrant setup 支持缓存的软件包和镜像。请阅读 vagrant directory README 获得更多信息,帮助进行配置和使用缓存支持。

下一步,复制 deploy/ 目录到集群的master节点。

你需要提供自己的 topology file。一个示例 topology file 包含在 deploy/ 目录下 (default location that gk-deploy expects) ,可以用于vagrant libvirt setup的 topology。当创建topology file时:

  • 确认topology file只列出用于heketi's的 block devices。heketi需要存取整个 block devices (e.g. /dev/sdb, /dev/vdb) ,其将被分区和格式化。

  • 这里的 hostnames 数组有一点误导,manage 将是节点的hostnames的列表,但是storage将是node上的IP addresses列表,用于后台的存储通讯。

如果你使用提供vagrant libvirt setup, 你将能够:

$ vagrant ssh-config > ssh-config
$ scp -rF ssh-config ../deploy master:
$ vagrant ssh master
[vagrant@master]$ cd deploy
[vagrant@master]$ mv topology.json.sample topology.json

下面的命令运行时时假定使用 administrative privileges (比如前面加上 sudo su).

然后,验证下 Kubernetes安装,是否所有节点都已经可用:

$ kubectl get nodes
NAME      STATUS    AGE
master    Ready     22h
node0     Ready     22h
node1     Ready     22h
node2     Ready     22h

注意: 查看 Kubernetes 版本(which will change based on latest official releases) 运行 kubectl version

下一步,部署 heketi 和 GlusterFS,运行:

$ ./gk-deploy -g

如果你已经有了一个 GlusterFS 集群,不需要 -g 选项。

该操作结束后,GlusterFS 和 heketi 应该已经安装并准备运行。你可以设置 HEKETI_CLI_SERVER环境变量,以便 heketi-cli可以直接读取,或者发送到 curl:

$ export HEKETI_CLI_SERVER=$(kubectl get svc/heketi --template 'http://{{.spec.clusterIP}}:{{(index .spec.ports 0).port}}')

$ echo $HEKETI_CLI_SERVER
http://10.42.0.0:8080

$ curl $HEKETI_CLI_SERVER/hello
Hello from Heketi

现在的Kubernetes cluster看起来应该如下的样子(节点取决于配置):

$ kubectl get nodes,pods
NAME      STATUS    AGE
master    Ready     22h
node0     Ready     22h
node1     Ready     22h
node2     Ready     22h
NAME                               READY     STATUS              RESTARTS   AGE
glusterfs-node0-2509304327-vpce1   1/1       Running             0          1d
glusterfs-node1-3290690057-hhq92   1/1       Running             0          1d
glusterfs-node2-4072075787-okzjv   1/1       Running             0          1d
heketi-3017632314-yyngh            1/1       Running             0          1d

现在,你可以使用 heketi-cli 或者其它 heketi REST API (like the GlusterFS volume plugin) 客户端来 创建/管理 volumes,然后mount这些 volumes 以验证是否工作。在Kubernets中应用的使用例子参见:

联系

 gluster-kubernetes 开发者 hang out in #sig-storage on the Kubernetes Slack 和 IRC channels in #gluster and #heketi at freenode network.

可以到GitHub提交 Issues 和 Pull Requests。

© 著作权归作者所有

openthings
粉丝 325
博文 1140
码字总数 689435
作品 1
东城
架构师
私信 提问
Kubernetes中挂载GlusterFS的volume

Kubernetes可以直接挂载多种文件系统,其中包括GlusterFS(https://kubernetes.io/docs/concepts/storage/volumes/#glusterfs)。 这里采用最简单的方法,挂载宿主系统的GlusterFS卷给Kuber...

openthings
2018/11/26
575
0
Harbor快速部署到Kubernetes集群及登录问题解决

Harbor(https://goharbor.io)是一个功能强大的容器镜像管理和服务系统,用于提供专有容器镜像服务。随着云原生架构的广泛使用,原来由VMWare开发的Harbor也加入了云原生基金会(参考《Har...

openthings
02/23
563
2
使用GlusterFS作为Kubernetes的后端存储

主机部署GFS 格式化硬盘,并添加挂在作为数据盘 mkfs.xfs -i size=2048 disk-name or partition-name(/dev/sdc) mkdir -p /data/brick1 mount /dev/sdc /data/brick1 tip: you can use a dir......

数据架构师
02/17
0
0
kubernetes中部署Heketi和GlusterFS

前言 在kubernetes中,使用GlusterFS文件系统,操作步骤通常是: 创建brick-->创建volume-->创建PV-->创建PVC-->Pod挂载PVC 如果要创建多个PV,则需要手动重复执行这些繁锁步骤,Heketi可以解...

Flywithmeto
2018/07/01
0
0
Glusterfs简介以及其工作流程的简单分析

Glusterfs简介 GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP...

老叮当猫
2013/11/16
2.1K
2

没有更多内容

加载失败,请刷新页面

加载更多

经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0
实战项目-学成在线(八)

在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中心来管理微服务信息。 注册中心作用: 1、微服务数量众多,要进行远程调用就需要知...

lianbang_W
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部