zoukankan      html  css  js  c++  java
  • 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 
    
  • 相关阅读:
    数据结构的理解
    等价、偏序和全序
    等价、偏序和全序
    二叉树与树的理解
    SICP 习题 (2.10)解题总结: 区间除法中除于零的问题
    div:给div加滚动栏 div的滚动栏设置
    textarea文本域宽度和高度(width、height)自己主动适应变化处理
    OSX: 逻辑卷管理系统Core Storage(1)
    垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
    string实现
  • 原文地址:https://www.cnblogs.com/Aaron-23/p/13130331.html
Copyright © 2011-2022 走看看