Coup de Grace

K8s后日谈 Glusterfs与pv

这篇要重新写.

在分布式存储方面了解的不多,比较倾向于:

这次做的demo主要是如下流程:

efk->存储es数据->做块网络硬盘.

2017-04 补充 heketi/heketi也值得关注

安装Glusterfs

Centos7+的版本一般都自带Glusterfs.

rpm -qa | grep gluster查看各个组件

gluster-lib/common/server/client啊之类的

另外也可以按照这里安装.

关键步骤:

创建PV

Kubernetes关于Storage的文档在这里.

在dashboard上我们可以清楚地看到PV是admin scope下的.

那么:

  1. k8s node上有gluster-client.
  2. 创建Endpoint
  3. 创建PV给所有namespace来申请

安装不好gluster-client可以自己解决一下

官方的Glusterfs示例在这里,不过是json形式的,而且引入形式比较陈旧.

于是我用了如下工具来转换与验证一下:

于是gluster-endpoint.yaml

kind: Endpoints
apiVersion: v1
metadata:
  name: glusterfs-cluster
subsets:
- addresses:
  - ip: your-gluster-ip1
  ports:
  - port: 1
- addresses:
  - ip: your-gluster-ip2
  ports:
  - port: 1

这块ip不能用域名形式,只能是ip

而后gluster-pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: gluster-volume2
spec:
  capacity:
    storage: 120Gi
  accessModes:
    - ReadWriteMany
  glusterfs:
    endpoints: "glusterfs-cluster"
    path: "glusterfs-data"
    readOnly: false

当然这个创建可分配容量是有限制的,无法超过当时创建的brick大小.

创建PVC

官方文档在这里.

再次观察dashboard会发现PVC是namespace scope下的.

简单写下,gluster-pvc.yaml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: gluster-es-pvc
  namespace: kube-system
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 80Gi

那么分享一个我的测试:

感受一下.


后续肯定会搞得有:


done.