使用glusterfs 文件系统做k8s 的持久化存储
安装glusterfs参考:https://jimmysong.io/kubernetes-handbook/practice/using-glusterfs-for-persistent-storage.html一、使用如下脚本创建数据卷#!/bin/bashif [ $# -lt 3 ];thenecho "please input at least 3 param"...
·
安装glusterfs参考:https://jimmysong.io/kubernetes-handbook/practice/using-glusterfs-for-persistent-storage.html
一、使用如下脚本创建数据卷
#!/bin/bash
if [ $# -lt 3 ];
then
echo "please input at least 3 param"
exit 0
fi
volumeName=$1
mountPath=$2
dbSize=$3
gluster volume create $volumeName replica 2 transport tcp gfs-node1:/data1/gfs_data/${mountPath} gfs-node2:/data1/gfs_data/${mountPath} gfs-node3:/data1/gfs_data/${mountPath} gfs-node4:/data1/gfs_data/
${mountPath} force
gluster volume list
gluster volume start $volumeName
#gluster volume quota $volumeName enable
#gluster volume quota $volumeName limit-usage / ${dbSize}GB
#gluster volume set $volumeName performance.cache-size 2GB
#gluster volume set $volumeName performance.io-thread-count 16
#gluster volume set $volumeName network.ping-timeout 10
#gluster volume set $volumeName performance.write-behind-window-size 1024MB
echo "#########volume list #########"
gluster volume list
# sh createVolume.sh k8s-volume-jenkins-master jenkins-master 20
shell 脚本变量说明:$1 卷名称 $2 挂载路径 $3卷大小
二、配置endpoints
{
"kind": "Endpoints",
"apiVersion": "v1",
"metadata": {
"name": "glusterfs-cluster",
"namespace": "ci"
},
"subsets": [
{
"addresses": [
{
"ip": "192.168.1.1"
}
],
"ports": [
{
"port": 1990
}
]
},
{
"addresses": [
{
"ip": "192.168.1.2"
}
],
"ports": [
{
"port": 1990
}
]
},
{
"addresses": [
{
"ip": "192.168.1.3"
}
],
"ports": [
{
"port": 1990
}
]
},
{
"addresses": [
{
"ip": "192.168.1.4"
}
],
"ports": [
{
"port": 1990
}
]
}
]
}
# kubectl apply -f glusterfs-endpoints.json
配置endpoints service
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "glusterfs-cluster",
"namespace": "ci"
},
"spec": {
"ports": [
{"port": 1990}
]
}
}
# kubectl apply -f glusterfs-service.json
三、创建pv
kubectl create -f jenkins-master-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-jenkins-master
namespace: ci
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteMany
glusterfs:
endpoints: "glusterfs-cluster"
path: "k8s-volume-jenkins-master"
readOnly: false
四、创建pvc
# kubectl create -f jenkins-master-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-jenkins-master
namespace: ci
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 20Gi
五、k8s 对象使用pvc
volumeMounts:
- name: home
mountPath: "/var/jenkins_home"
volumes:
- name: home
persistentVolumeClaim:
claimName: pvc-jenkins-master
更多推荐
所有评论(0)