在kubernetes的pod中挂载glusterfs已经建立好的volume

在kubernetes挂载glusterfs的现存卷

测试环境

  • kubernetes集群,版本v1.15
  • glusterfs集群,3台,centos7.3

glusterfs集群的创建和卷的创建

  • 安装glusterfs组建
    # 三台设备都需要执行
    yum  search gluster
    # yum -y install centos-release-gluster${你想要的版本}.noarch
    yum -y install centos-release-gluster7.noarch
    yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
    systemctl start glusterd.service
    systemctl status glusterd.service
    
  • 创建集群
    # 登录在node1上
    gluster peer status ${node2 ip}
    gluster peer status ${node3 ip}
    
  • 创建volume
    gluster volume create test replica 3 node1:/data/test node2:/data/test node3:/data/test force
    gluster volume start test
    

在kubernetes的pod中挂载glusterfs的volume

  • 通过hostpath的方式挂载
    - 要求
    - 需要把glusterfs挂载在每一台kubernetes的节点的同一路径上
    - pod yaml

      	```
      	apiVersion: v1
      	kind: Pod
      	metadata:
      		name: glusterfs
      	spec:
      		containers:
      		- name: glusterfs
      		  image: nginx
      		  volumeMounts:
      		  - mountPath: "/mnt/glusterfs"
      		    name: glusterfsvol
      		volumes:
      		- name: glusterfsvol
      		  hostPath:
      		  	path: /data/glusterfs
      		  	type: Directory
      	```
    
  • 通过endpoints的方式挂载

    • 要求
      • 需要把glusterfs集群的所有hostname都配置到kubernetes的每一个node的/etc/hosts文件中
    • 为glusterfs创建endpoints
      apiVersion: v1
      kind: Endpoints
      metadata:
      	name: glusterfs-cluster
      subsets:
      - addresses:
        - ip: ${node1 ip}
        ports:
        - port: 1 #这里随便写,其实是没有用的
      - addresses:
      	- ip: ${nod2 ip}
      	ports:
        - port: 1 #这里随便写,其实是没有用的
      - addresses:
      	- ip: ${nod3 ip}
      	ports:
        - port: 1 #这里随便写,其实是没有用的
      
    • 为endpoints创建service
      apiVersion: v1
      kind: Service
      metadata:
      	name: glusterfs-cluster
      spec:
      	ports:
      	- port: 1
      
    • 通过service将glusterfs的volume挂载到pod中去
      apiVersion: v1
      kind: Pod
      metadata:
      	name: glusterfs
      spec:
      	containers:
      	- name: glusterfs
      	  image: nginx
      	  volumeMounts:
      	  - mountPath: "/mnt/glusterfs"
      	    name: glusterfsvol
      	volumes:
      	- name: glusterfsvol
      	  glusterfs:
      	  	endpoints: glusterfs-cluster
      	  	path: test
      	  	readOnly: false
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值