k8s使用glusterfs存储系统
最近部署了k8s,默认使用的主机存储。主机/目录默认空间较小,并且部分容器对磁盘io要求较高。遂搭建glusterfs文件系统,并配置给k8s使用。
glusterfs搭建步骤见 https://www.cnblogs.com/tangshow/p/15930784.html
环境
cetons7已部署glusterfs主机三台(k8s也位于这三台上)
master1(node01) 192.168.2.134
master2(node01) 192.168.2.80
cli (nfs) 192.168.2.131
注意:
默认情况下 Endpoints、pv 、pvc 都在default空间 ,在default使用glusterfs时不用指定空间
当需要在其他空间使用glusterfs时,需要创建Endpoints、pv 、pvc时都指定空间,例:
metadata:
namespace: kube-system
1 创建Endpoints 和对应的service
kubectl apply -f glusterfs-cluster.yaml
glusterfs-cluster.yam内容如下:
apiVersion: v1
kind: Endpoints
metadata:
name: glusterfs-cluster
subsets:
- addresses:
- ip: 192.168.2.134
ports:
- port: 49152
- addresses:
- ip: 192.168.2.131
ports:
- port: 49152
- addresses:
- ip: 192.168.2.80
ports:
- port: 49152
---
apiVersion: v1
kind: Service
metadata:
name: glusterfs-cluster
spec:
ports:
- port: 49152
2 创建容器指定使用gluster做存储
kubectl apply -f nginx_test.yaml
# 为方便测试,此方法没有使用pv/pvc 直接指定"endpoints: glusterfs-cluster"
nginx_test.yaml内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment-test
spec:
replicas: 1
selector:
matchLabels:
name: nginx
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
volumeMounts:
- name: storage001
mountPath: "/usr/share/nginx/html"
volumes:
- name: storage001
glusterfs:
endpoints: glusterfs-cluster
path: models
readOnly: false