k8s安装glusterfs


1. 安装与配置glusterfs

节点如下

192.168.0.90  master
192.168.0.91  node01
192.168.0.92  node02

1.1 每个节点安装glusterfs全家桶

yum install -y centos-release-gluster 
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
# 启动服务,并添加到开机启动
systemctl start glusterd.service
systemctl enable glusterd.service

1.2 主节点加入其他节点

gluster peer probe node01
gluster peer probe node02

1.3 每个节点创建gfs文件夹

mkdir /root/gfs

1.4 主节点使用默认模式创建卷并启动

gluster volume create k8s_data master:/root/gfs node01:/root/gfs node02:/root/gfs  force
gluster volume start k8s_data

可以试验一下是否起作用.

主节点挂载,并创建test_txt文件

mkdir -p /root/test
mount -t glusterfs master:k8s_data /root/test
touch /root/test/test_txt

从节点挂载,并查看

mkdir -p /root/test
mount -t glusterfs master:k8s_data /root/test
ls /root/test

验证完毕后主从取消挂载

umount /root/test

2. 配置k8s使用flusterfs

2.1 创建glusterfs-cluster.yaml

必须使用ip而非hostname

apiVersion: v1
kind: Endpoints
metadata:
  name: glusterfs-cluster
subsets:
- addresses:
  - ip: 192.168.0.90
  ports:
  - port: 49152
- addresses:
  - ip: 192.168.0.91
  ports:
  - port: 49152
- addresses:
  - ip: 192.168.0.92
  ports:
  - port: 49152
---
apiVersion: v1
kind: Service
metadata:
  name: glusterfs-cluster
spec:
  ports:
  - port: 49152

加载配置

kubectl apply -f glusterfs-cluster.yaml

2.2 创建glusterfs-pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: glusterfs-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  glusterfs:
    endpoints: glusterfs-cluster
    path: k8s_data
    readOnly: false

加载配置

kubectl apply -f glusterfs-pv.yaml

2.3 创建glusterfs-pvc.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: glusterfs-pvc
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 10Gi

加载配置

kubectl apply -f glusterfs-pvc.yaml