kubernetes资源使用glusterfs卷进行数据持久化

1、GlusterFS部署

安装GlusterFS集群的主要目的是为k8s集群提供分布式持久化存储。

GlusterFS部署使用2台服务器,服务名称与IP如下:

1 	db-storagea  	10.1.70.29
2 	db-storageb 	10.1.70.30

Ubuntu系统服务安装及启动

apt-get install  glusterfs-server
systemctl start   glusterd
systemctl enable   glusterd   
systemctl status  glusterd

集群认证

服务器10.1.70.29

gluster peer probe 10.1.70.30

查看集群集群状态

服务器10.1.70.29

命令:gluster peer status

反馈:Number of Peers: 1

服务器10.1.70.30

命令:gluster peer status

反馈:Number of Peers: 1

分别在服务器10.1.70.29,10.1.70.30创建目录

mkdir -p /data/gluster  /data/portal-files  /data/portal-private  /data/portal-config 

创建gluster卷并启动卷

创建名称为 : mamm-volume 路径为 :/data/gluster
gluster volume create mamm-volume repl 2  10.1.70.29:/data/gluster 10.1.70.30:/data/gluster
启动mamm-volume卷
gluster volume start mamm-volume

gluster volume create portal-files repl 2  10.1.70.29:/data/portal-files 10.1.70.30:/data/portal-files force 

gluster volume start portal-files

gluster volume create portal-private repl 2  10.1.70.29:/data/portal-private 10.1.70.30:/data/portal-private force

gluster volume start portal-private

gluster volume create portal-config repl 2  10.1.70.29:/data/portal-config 10.1.70.30:/data/portal-config force

gluster volume start portal-config

查看卷空间

命令: gluster volume info

Gluster 测试 找台服务器测试

客户端安装  glusterfs-client
mkdir /opt/clusterfstest
挂载
mount -t glusterfs 10.1.70.29:/mamm-volume  /opt/clusterfstest

2、Kubernetes使用glusterfs持久化

先决条件

  • 设置 GlusterFS 服务器集群
  • 创建 GlusterFS 卷

创建 endpoints

apiVersion: v1
kind: Endpoints
metadata:
  name: glusterfs-cluster
subsets:
- addresses:
  - ip: 10.1.70.29
  ports:
  - port: 24007
- addresses:
  - ip: 10.1.70.30
  ports:
  - port: 24007

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

kubectl get endpoints

还需要为这些端点创建一个服务,以便它们能够持久存在

apiVersion: v1
kind: Service
metadata:
  name: glusterfs-cluster
spec:
  ports:
  - port: 20447

3、使用控制器进行挂载

    volumeMounts:
    - mountPath: "/var/www/html/web/sites/default/files"
      name: portal-files
    - mountPath: "/var/www/html/private"
      name: portal-private
    - mountPath: "/var/www/html/config"
      name: portal-config
  volumes:
  - name: portal-files
    glusterfs:
      endpoints: glusterfs-cluster
      path: portal-files
      readOnly: false
  - name: portal-private
    glusterfs:
      endpoints: glusterfs-cluster
      path: portal-private
      readOnly: false
  - name: portal-config
    glusterfs:
      endpoints: glusterfs-cluster
      path: portal-config
      readOnly: false

4、在pod内测试

在pod内相关目录创建文件,然后在gluster服务器卷目录查看该文件是否存在

posted @ 2022-02-25 11:36  Jerry·  阅读(41)  评论(0)    收藏  举报