4

StateFulSets で既存の NFS を使用しようとしています。

の作成は、PresistentVolumeClaimを使用して自動的に行われるようvolumeClaimTemplatesです。

問題:

しかし、PresistentVolumeClaim全体を主張しているのでPresistentVolumePresistentVolumeすべてのレプリカを手動で作成する必要があります。Kubernetes で NFS 永続ボリュームを動的にプロビジョニングする方法はありますか?

注: NFS サーバー自体は静的です。NFS サーバー自体ではなく、K8s でボリュームを動的に作成する必要があるだけです。

私はmongoステートフルセットの例を使用しています:

---
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ます。aws-ebs などの他の動的プロビジョナーと同様に、これを NFS に動的に追加できますか

これは NFS Persistent Volume で StatefulSet を取得する適切な方法ですか?

4

2 に答える 2

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

于 2018-08-16T04:50:20.317 に答える