Kubernetes之GlusterFS集群文件系统高可用安装,提供动态卷存储
GlusterFS高可用安装
一. 准备工作
- 安装好的k8s集群,提供其中三个节点给GFS,这三个节点都至少有一个可用的裸块设备
- 在k8s所有节点安装所需要的组件
# ubuntu16.04
add-apt-repository ppa:gluster/glusterfs-7
apt-get update
apt-get install glusterfs-client -d
modprobe dm_thin_pool
# centos
yum -y install centos-release-gluster
yum -y install glusterfs-client
modprobe dm_thin_pool
- 在GlusterFS节点划分分区
# 查看可用磁盘
fdisk -l
# 分区并格式化
mkfs.xfs /dev/vdb1
mkdir -p /data
echo "/dev/vdb1 /data xfs defaults 1 2" >>/etc/fstab
# 挂载
mount -a
# 确定/data挂载
df -h | grep data
二. 部署GlusterFS
以下操作在k8s的任一master节点执行
- 获取对应项目
git clone https://gitee.com/liu_shuai2573/gfs-k8s.git && cd gfs-k8s
- 设置标签使该节点只运行GFS
#设置标签,调度glusterfs的pod至指定节点
kubectl label node 10.10.10.71 10.10.10.72 10.10.10.73 storagenode=glusterfs
#设置taint策略,使该节点只运行glusterfs,如需复用glusterfs节点请忽略该操作
kubectl taint node 10.10.10.71 10.10.10.72 10.10.10.73 glusterfs=true:NoSchedule
#设置taint策略,使该节点只运行rbd-gateway,如需复用rbd-gateway节点请忽略该操作
kubectl taint node 10.10.10.86 10.10.10.87 rbd-gateway=true:NoSchedule
- 运行GFS的相关控制器
kubectl create -f gluster-daemonset.yaml
- 检查是否在指定节点正常运行
kubectl get pods -o wide --selector=glusterfs-node=daemonset
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
glusterfs-2k5rm 1/1 Running 0 52m 192.168.2.200 192.168.2.200 <none> <none>
glusterfs-mc6pg 1/1 Running 0 134m 192.168.2.22 192.168.2.22 <none> <none>
glusterfs-tgsn7 1/1 Running 0 134m 192.168.2.224 192.168.2.224 <none> <none>
- 为GFS集群添加节点
kubectl exec -ti glusterfs-2k5rm gluster peer probe 192.168.2.22
kubectl exec -ti glusterfs-2k5rm gluster peer probe 192.168.2.224
# 检测是否添加成功
kubectl exec -ti glusterfs-2k5rm gluster peer status
- 创建服务账户并进行RBAC授权
kubectl create -f rbac.yaml
三. 配置Kubernetes使用GlusterFS
- 创建provisioner资源
kubectl create -f deployment.yaml
创建storageclass资源
修改
storageclass.yaml
文件中的parameters.brickrootPaths
字段对应的值,将gfs的pod IP替换掉
kubectl create -f storageclass.yaml
- 创建pvc验证
创建成功时STATUS为Bound
kubectl create -f pvc.yaml
kubectl get pvc | grep gluster-simple-claim
- 创建pod验证
运行正常时STATUS为Running
kubectl create -f pod.yaml
kubectl get po | grep gluster-simple-pod
Kubernetes之GlusterFS集群文件系统高可用安装,提供动态卷存储的更多相关文章
- 15套java架构师、集群、高可用、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程
* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩展. ...
- 15套java架构师、集群、高可用、高可扩 展、高性能、高并发、性能优化Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程
* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...
- K8S集群Master高可用实践
K8S集群Master高可用实践 https://blog.51cto.com/ylw6006/2164981 本文将在前文基础上介绍k8s集群的高可用实践,一般来讲,k8s集群高可用主要包含以 ...
- 浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)
1.熟悉几个组件 1.1.apache —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 ...
- hadoop 集群HA高可用搭建以及问题解决方案
hadoop 集群HA高可用搭建 目录大纲 1. hadoop HA原理 2. hadoop HA特点 3. Zookeeper 配置 4. 安装Hadoop集群 5. Hadoop HA配置 搭建环 ...
- Rabbitmq安装、集群与高可用配置
历史: RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多 ...
- Nginx+Zuul集群实现高可用网关
代码参考:https://github.com/HCJ-shadow/Zuul-Gateway-Cluster-Nginx Zuul的路由转发功能 前期准备 搭建Eureka服务注册中心 服务提供者m ...
- 11.Redis 哨兵集群实现高可用
作者:中华石杉 Redis 哨兵集群实现高可用 哨兵的介绍 sentinel,中文名是哨兵.哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能: 集群监控:负责监控 redis mast ...
- Quartz学习笔记:集群部署&高可用
Quartz学习笔记:集群部署&高可用 集群部署 一个Quartz集群中的每个节点是一个独立的Quartz应用,它又管理着其他的节点.这就意味着你必须对每个节点分别启动或停止.Quartz集群 ...
随机推荐
- <未解决的问题>crontab 定时弹框任务
问题:crontab写别的定时脚本就可以执行(比如说每隔一分钟就创建一个txt文件),但是写shell就不知道为什么,反弹不了 但是开启Linux终端窗口单独执行bash shell时候,(不通过re ...
- Windows下python+allure的下载、安装、配置与使用
下载安装allure 1.Windows和mac均可选择从官网下载,下载地址: https://repo.maven.apache.org/maven2/io/qameta/allure/allure ...
- VSCode + PYQT5 搭建图形化界面
1,安装依赖 pip install -i https://mirrors.aliyun.com/pypi/simple/ PyQt5 pip install -i https://mirrors.a ...
- Python编程学习爆破一些简单加密的文件
前言 这里只是分享一下Python如何生成爆破字典,对于简单的一些加密文件,咱们可以跑字典获取正确的密码,比如zip加密文件.这里小编给大家简单的介绍一下爆破字典的方法,希望对大家学习Python有帮 ...
- NET 调用人脸识别算法
以前有个OpenCV 移植版EMCV可以用作图像识别等 https://github.com/emgucv/emgucv 现在有各种接口 比如虹软SDK https://ai.arcsoft.com ...
- [UWP] - Adaptive Trigger Featurede的使用方法及效果
XAML代码: <Page.Resources> <!-- DataTemplate to use in the portrait layout. --> <DataTe ...
- [.NET] - 在Create一个RSA密钥的是要注意的长度问题
有时候我们需要自己手动的创建RSA密钥,但是在密钥创建之后,在使用的时候会有类似密钥长度不正确的错误信息被抛出,那可能就是在创建一个RSA密钥的时候,对于的elements长度没设置正确,所以的ele ...
- 四元数和旋转(Quaternion & rotation)
四元数和旋转(Quaternion & rotation) 本篇文章主要讲述3D空间中的旋转和四元数之间的关系.其中会涉及到矩阵.向量运算,旋转矩阵,四元数,旋转的四元数表示,四元数表示的旋转 ...
- python 虾米停服了...用python爬取虾米最近播放的1000首歌
1. 虾米关服 在这里插入图片描述 用了5年多的音乐软件就这么说关就关了,确实让人心里不好受 ,虽然再去一个新的app里,让它们的算法熟悉你的喜好也不是很困难,可我还是习惯虾米的界面.虾米现在可以支持 ...
- mysql的binlog+maxwell+kakka
1.业务库痛点及解决⽅案 初期出⾏业务的订单相关,是以mysql作为业务库为基准的,但是随着业务线增多,每⽇新增数据指 数上涨,⼏乎在每天的⾼峰期期间,都会出现业务库所在服务器的cpu.IO.内存等跑 ...