Kubernetes:NFS与StatefulSets

时间:2017-05-11 10:57:14

标签: kubernetes nfs persistent-volumes persistent-volume-claims statefulset

我正在尝试将现有NFS与StateFulSets一起使用。

使用PresistentVolumeClaim创建volumeClaimTemplates似乎是自动的。

问题:

但是,由于PresistentVolumeClaim声称整个PresistentVolume。我必须手动为所有副本创建PresistentVolume。 有没有办法在Kubernetes中动态配置NFS持久卷?

注意: NFS服务器本身是静态的,只需要动态创建K8中的卷,而不是NFS服务器。

我正在使用mongo statefulset示例:

---
apiVersion: v1
kind: Service
metadata:
  name: mongo
  labels:
    name: mongo
spec:
  ports:
  - port: 27017
    targetPort: 27017
  clusterIP: None
  selector:
    role: mongo
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: mongo
spec:
  serviceName: "mongo"
  replicas: 3
  template:
    metadata:
      labels:
        role: mongo
    spec:
      terminationGracePeriodSeconds: 10
      containers:
        - name: mongo
          image: mongo
          command:
            - mongod
            - "--replSet"
            - rs0
            - "--smallfiles"
            - "--noprealloc"
          ports:
            - containerPort: 27017
          volumeMounts:
            - name: mongo-data
              mountPath: /data/db
        - name: mongo-sidecar
          image: cvallance/mongo-k8s-sidecar
          env:
            - name: MONGO_SIDECAR_POD_LABELS
              value: "role=mongo"
  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          type: nfs

它需要3 PresistentVolumeClaim,所以我必须创建3 PV才能使用它。这可以像其他动态配置程序一样动态添加到NFS中,例如aws-ebs

这是获取具有NFS持久卷的StatefulSet的正确方法。

1 个答案:

答案 0 :(得分:0)

这是我正在进行的工作,我昨天才回来(我的解决方案),但是我的建议是否适合您的目的(或以后找到它的任何人)是查看GlusterFS和Heketi。

信息包括在下面,但TLDR是GlusterFS是您的NFS,Heketi可以自动设置其余部分。我的github存储库使设置自动化...丑陋...但是它对我有用,而我将用我现在所知道的变得不那么丑。


  

GlusterFS是一个免费的开源可扩展网络文件系统。   https://github.com/gluster/glusterfs   https://www.gluster.org/

     

用于GlusterFS的基于RESTful的卷管理框架   https://github.com/heketi/heketi


https://github.com/stevenaldinger/gke-glusterfs-heketi