web-dev-qa-db-fra.com

Kubernetes: provisionnement dynamique de volumes persistants à l'aide de NFS

J'ai l'installation de plusieurs noeuds Kubernetes. J'essaie d'allouer un volume persistant de manière dynamique à l'aide de classes de stockage avec le plug-in de volume NFS. J'ai trouvé des exemples de classes de stockage pour glusterfs, aws-ebs, etc.mais je n'ai trouvé aucun exemple pour NFS . Si je crée uniquement PV et PVC, alors NFS fonctionne très bien (sans classe de stockage). J'ai essayé d'écrire un fichier de classe de stockage pour NFS, en faisant référence à d'autres plugins. s'il vous plaît se référer ci-dessous,

nfs-storage-class.yaml

kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
  namespace: kube-system
  name: my-storage
  annotations:
    storageclass.beta.kubernetes.io/is-default-class: "true"
  labels:
    kubernetes.io/cluster-service: "true"

provisioner: kubernetes.io/nfs
parameters:
  path: /nfsfileshare
  server: <nfs-server-ip> 

nfs-pv-claim.yaml

apiVersion: v1
metadata:
  name: demo-claim
  annotations:
    volume.beta.kubernetes.io/storage-class: my-storage
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

Cela n'a pas fonctionné. Donc, ma question est la suivante: pouvons-nous écrire une classe de stockage pour NFS? Est-ce que cela favorise le provisionnement dynamique?

9
Yudi

Je cherche à faire la même chose. J'ai trouvé https://github.com/kubernetes-incubator/external-storage/tree/master/nfs , sur lequel je pense que vous avez basé votre fournisseur

Je pense qu'un fournisseur NFS devrait créer un répertoire unique sous le chemin défini. Je ne sais pas vraiment comment cela pourrait être fait.

Peut-être que c'est mieux comme un problème de github sur le dépôt des kubernetes.

2
xeor

Le provisionnement dynamique du stockage à l'aide de NFS ne fonctionne pas, utilisez mieux glusterfs. Il existe un bon tutoriel qui résout les problèmes courants lors de la configuration de . http://blog.lwolf.org/post/how-i-deployed-glusterfs-cluster-to-kubernetes/

2
karthik101

Le but de StorageClass est de créer un stockage, par exemple. de fournisseurs de cloud (ou "approvisionneur" comme ils l'appellent dans les documents kubernetes). Dans le cas de NFS, vous voulez seulement obtenir accès au stockage existant et aucune création n’est impliquée. Ainsi, vous n'avez pas besoin de StorageClass. S'il vous plaît se référer à ce blog .

1

J'ai également essayé d'activer le provisioner NFS sur mon cluster kubernetes et au début cela ne fonctionnait pas, car le guide de démarrage rapide ne mentionne pas qu'il faut également appliquer le fichier rbac.yaml (j'ai ouvert un fichier PR pour résoudre ce problème).

Le provisioner nfs fonctionne correctement pour moi si je suis les étapes suivantes sur mon cluster: https://github.com/kubernetes-incubator/external-storage/tree/master/nfs#quickstart

$ kubectl create -f deploy/kubernetes/deployment.yaml
$ kubectl create -f deploy/kubernetes/rbac.yaml
$ kubectl create -f deploy/kubernetes/class.yaml

Ensuite, vous devriez pouvoir créer des PVC comme ceci:

$ kubectl create -f deploy/kubernetes/claim.yaml

Vous voudrez peut-être modifier les dossiers utilisés pour les montages de volume dans deployment.yaml afin de les faire correspondre à votre cluster.

0
Hanno Kolvenbach