CentOS7下配置GlusterFS供Kubernetes使用

作者: ygqygq2 分类: 系统/运维 发布时间: 2018-08-17 08:25

CentOS7下配置GlusterFS供Kubernetes使用

1. 环境说明

系统:CentOS7,/data为非系统分区挂载目录
docker:1.13.1
kubernetes:1.11.1
glusterfs:4.1.2

2. GlusterFS部署

2个节点,192.168.105.97、192.168.105.98

使用yum安装

CentOS-Gluster-4.1.repo

启动及设置开机启动

GlusterFS通过24007端口相互通信。防火墙需要开放端口。

/etc/hosts

在主机glu1上执行

查看集群状态(节点间相互看到对方信息)

GlusterFS 几种volume模式说明:
链接中比较直观:https://docs.gluster.org/en/latest/Administrator%20Guide/Setting%20Up%20Volumes/

  1. 默认模式,既DHT, 也叫分布卷: 将文件已hash算法随机分布到 一台服务器节点中存储。
    命令格式:gluster volume create test-volume server1:/exp1 server2:/exp2
  2. 复制模式,既AFR, 创建volume 时带 replica x 数量: 将文件复制到 replica x 个节点中,现在已经推荐3节点仲裁者复制模式,因为2节点可能产生脑裂。
    命令格式:gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
    gluster volume create test-volume replica 3 arbiter 1 transport tcp server1:/exp1 server2:/exp2 server3:/exp3
  3. 分布式复制模式,至少4节点。
    命令格式:gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
  4. 分散模式,最少需要3节点
    命令格式:gluster volume create test-volume disperse 3 server{1..3}:/bricks/test-volume
  5. 分布式分散模式,创建一个分布式分散体积,分散关键字和<数量>是强制性的,指定的砖块在命令行中的数量必须是分散数的倍数
    命令格式:gluster volume create <volname> disperse 3 server1:/brick{1..6}

列一些Glusterfs调优:

3. 客户端使用GlusterFS

###3.1 物理机上使用GlusterFS的volume

3.2 Kubernetes使用GlusterFS

以下操作在kubernetes master节点操作

3.2.1 创建GlusterFS端点定义

vim /etc/kubernetes/glusterfs/glusterfs-endpoints.json

注意:
该subsets字段应填充GlusterFS集群中节点的地址。可以在port字段中提供任何有效值(从1到65535)。

3.2.2 配置 service

我们还需要为这些端点创建服务,以便它们能够持久存在。我们将在没有选择器的情况下添加此服务,以告知Kubernetes我们想要手动添加其端点

vim glusterfs-service.json

3.3.3 配置PersistentVolume

创建glusterfs-pv.yaml文件,指定storage容量和读写属性

vim glusterfs-pv.yaml

3.3.4 配置PersistentVolumeClaim

创建glusterfs-pvc.yaml文件,指定请求资源大小

vim glusterfs-pvc.yaml

3.3.5 部署应用挂载pvc

以创建nginx,把pvc挂载到容器内的/usr/share/nginx/html文件夹为例:

vim glusterfs-nginx-deployment.yaml

验证结果:

至此部署完成。

4. 小结

此文GlusterFS是安装在物理系统下,而非kubernetes中,所有需要手工维护,下次介绍在kubernetes中安装使用gluster。GlusterFS的volume模式根据业务灵活应用。需要注意的是,如果使用分布卷,pod中的挂载目录文件可能存在卷的任一节点中,可能并非直接df -h看到的那个节点中。

参数资料:
[1] https://kubernetes.io/docs/concepts/storage/persistent-volumes/
[2] https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/
[3] https://www.kubernetes.org.cn/4069.html
[4] https://www.gluster.org/
[5] https://blog.csdn.net/hxpjava1/article/details/79817078
[6] https://docs.gluster.org/en/latest/Administrator%20Guide/Setting%20Up%20Volumes/
[7] https://docs.gluster.org/en/latest/Administrator%20Guide/Setting%20Up%20Clients/
[8] https://github.com/kubernetes/examples/blob/master/staging/volumes/glusterfs/README.md

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注