L'interface CSI (Container Storage Interface) est maintenant disponible en version bêta dans Kubernetes v1.10. Du fait de ce nouveau statut, CSI est désormais activé par défaut. Pour plus d'informations sur l'implémentation de la version
bêta de CSI dans Kubernetes, voir Container Storage Interface (CSI) for Kubernetes Goes Beta .
La plupart des plug-ins CSI nécessitent la définition de l'indicateur --allow-privileged=true sur le fichier binaire du serveur d'API et sur les fichiers binaires kubelet. Cet indicateur est activé par défaut dans IBM Cloud Private.
Pour un environnement IBM Cloud Private, vous pouvez utiliser un volume CSI dans un pod Kubernetes sans avoir besoin de définir une configuration supplémentaire.
Les fichiers exemple utilisés dans ce déploiement exemple sont disponibles à partir du référentiel Kubernetes GitHub. Voir kubernetes-csi/drivers .
Clonez le référentiel kubernetes-csi/drivers .
Accédez au répertoire nfs.
cd drivers/pkg/nfs
Créez le déploiement.
kubectl create -f ./deploy/kubernetes/
La sortie ressemble au code ci-après :
service "csi-attacher-nfsplugin" created
statefulset.apps "csi-attacher-nfsplugin" created
serviceaccount "csi-attacher" created
clusterrole.rbac.authorization.k8s.io "external-attacher-runner" created
clusterrolebinding.rbac.authorization.k8s.io "csi-attacher-role" created
daemonset.apps "csi-nodeplugin-nfsplugin" created
serviceaccount "csi-nodeplugin" created
clusterrole.rbac.authorization.k8s.io "csi-nodeplugin" created
clusterrolebinding.rbac.authorization.k8s.io "csi-nodeplugin" created
Déployez un pod en utilisant le volume CSI créé.
Localisez le serveur NFS.
showmount -e
La sortie ressemble au code ci-après :
Export list for nfsserver:
/nfs *
Editez le fichier examples/kubernetes/nginx.yaml. Mettez à jour les paramètres server et share pour qu'ils correspondent à vos paramètres système.
cat examples/kubernetes/nginx.yaml | grep csi -A 5
La sortie ressemble au code ci-après :
csi:
driver: csi-nfsplugin
volumeHandle: data-id
volumeAttributes:
server: 10.10.25.7
share: /nfs
---
Créez un pod en utilisant le pilote NFS.
kubectl create -f examples/kubernetes/nginx.yaml
La sortie ressemble au code ci-après :
persistentvolume "data-nfsplugin" created
persistentvolumeclaim "data-nfsplugin" created
pod "nginx" created
Vérifiez le point de montage.
Accédez au conteneur nginx.
kubectl exec -it nginx sh
Accédez au répertoire /var/www.
cd /var/www
Créez un fichier.
touch test
Listez le fichier sur le point de montage.
ls
La sortie ressemble au code ci-après :
test
Vérifiez le serveur de montage.
Localisez le serveur.
hostname
La sortie ressemble au code ci-après :
nfsserver
Répertoriez les fichiers sur le serveur.
ls /nfs
La sortie ressemble au code ci-après :
test