

一篇讲透Kubernetes与GlusterFS之间的爱恨情仇(二) - 恒生技术之眼 - 恒生研究院
source link: http://rdc.hundsun.com/portal/article/827.html?
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一篇讲透Kubernetes与GlusterFS之间的爱恨情仇(二)
上文我们主要介绍了Kubernetes与GlusterFS的部署方式和如何使用手动的方式使用存储时自己创建GlusterFS的卷(GlusterFS的数据存储在卷Volume上)请戳链接回顾:一篇讲透Kubernetes与GlusterFS之间的爱恨情仇(一)。
本文我们将继续介绍如何自动利用Kubernetes的 Dynamic Provisioning 特性。自动方式需要先部署Heketi软件,Heketi用来管理GlusterFS,并提供RESTful API接口供Kubernetes调用。Heketi需要使用裸磁盘,假设三个GlusterFS节点上都挂了一块裸磁盘 /dev/xvde。接下来我们进入实战模式
部署在
安装:(以下安装过程--到安装结束的地方--可以使用 http://192.168.58.228:9007/glusterfs/heketi/ 上的一键安装包安装)
改为公司yum源
(安装结束)
修改/etc/heketi/heketi.json(省略了没有修改的部分):

这里主要把端口改为8083了(防止冲突),executor 改为 ssh, sshexec 的各项配置也做了相应修改。
其中的keyfile制作方法:
输入key(随便起的名字)一直回车。制作完成后会在当前目录下生成key、key.pub,把 key.pub 上传到GlusterFS三台服务器的 /root/.ssh/ 下面,并重命名为 authorized_keys,/etc/heketi/heketi.json 中 的 keyfile 指向 生成的 key(包含路径)。
启动:
(Heketi数据目录: /var/lib/heketi)
验证:
▲配置节点
新建 topology.json:



载入配置:
查看拓扑:
建个大小为2G的volume试试:
Kubernetes通过创建StorageClass来使用 Dynamic Provisioning 特性,StorageClass连接Heketi,可以根据需要自动创建GluserFS的Volume,StorageClass还是要系统管理员创建,不过StorageClass不需要每次创建,因为这个不需要很多,不同的PVC可以用同一个StorageClass。
新建文件:glusterfs-storageclass.yaml:

replicate:3代表会创建三个副本复制模式的GluserFS Volume。
执行命令创建:
【Kubernetes创建应用】
应用部署人员创建pvc及应用(本文还是以mysql为例)
创建两个文件:
▪ glusterfs-pvc.yaml:

▪ mysql-deployment.yaml:


执行命令创建:
查看endpoint、service、pv,可以发现这些都自动建好了:

查看PVC:

c可以看到PV和PVC已经绑定好。
还是可以用刚才的命令连接到mysql:
按刚才的方式测试mysql pod重新调度后数据还在不在,可以发现数据还在。
从上一篇文章可以看到手动方式需要系统管理员每次手动建GlusterFS的Volume和Kubernetes的PV,或者系统管理员事先建好一批Volume和PV。而本文所介绍的自动方式则是不需要,Kubernetes可以根据应用部署人员的需要动态创建Volume和PV,节省了很多工作量,所以,得出的结论就是推荐使用自动方式。有更好建议的同学可以留言分享你的观点,我们一起探讨吧!
Recommend
-
102
一篇讲透Kubernetes与GlusterFS之间的爱恨情仇(一) 存储是容器编排中非常重要的一部分。Kubernetes从v1.2开始,提供了dynamic provisioning这一强大的特性,可以给集群提供按...
-
44
GlusterFS是一个开源的横向扩展文件系统。这些示例提供有关如何允许容器使用GlusterFS卷的信息。
-
47
说明 最近由于需要部署有状态服务,没有云环境的支持,不能很好的通过cloud provider调用云磁盘EBS,所以在node节点部署了一套glusterFS分布式文件存储系统,用来提供非结构化数据存储,存储图片,大文件等等. Kuberne...
-
67
概观本指南支持在Kubernetes集群中集成,部署和管理GlusterFS容器化存储节点。这使Kubernetes管理员能够为其用户提供可靠的共享存储。包括设置指南、其中包含一个示例服务器pod,它使用动态配置的GlusterFS卷进行存储。对于那些希望测试或了解有关此主题的更多信息...
-
21
-
29
或01数据库并发控制的作用 1.1 事务的概念 在介绍并发控制前,首先需要了解事务。数据库提供了增删改查等几种基础操作,用户可以灵活地组合这几种操作,实现复杂的语义。在很多场景下,用户希望一组操作可以...
-
30
Kubernetes,容器管理领域的领导者;GlusterFS,分布式文件系统的后起之秀,他们之间会擦出什么样的火花呢? 用Kubernetes部署的应用可以分为无状态的和有状态的,无状态的应用没有数据,Pod(一个或若干容器的集合)挂了被重新拉...
-
6
GlusterFS is a network attached distributed storage solution that connects multiple storage pool from different machines and act as a simple unified storage. It’s a high available, durable storage solution that can scale out and able to store...
-
4
在生产环境使用 Kubernetes ,绕不过去的一个问题就是持久化卷。 如果是使用阿里 ACK 托管平台的话,可以用 OSS 来持久化卷,如果是自搭的 kubernetes,那么存储就需要仔细考虑了。 ceph比较复杂,容易出故障。nfs 也不可用,毛病多多。minio倒是...
-
8
生产实践:使用 GlusterFS 搭建 Kubernetes 存储卷集群 作者:架构成长指南 2023-12-08 07:59:04 k8s中的StorageClass用于定义和配置持久卷(Persistent Volume)的资源对象。StorageClass 提供了一种抽象层,使得...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK