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?
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.
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/
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 .
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.