Container Storage Interface (CSI) ist jetzt in einer Betaversion in Kubernetes v1.10 verfügbar. Mit der Weiterentwicklung auf die Betaversion ist CSI nun standardmäßig aktiviert. Weitere Informationen zur Implementierung der CSI-Betaversion in Kubernetes
finden Sie im Abschnitt Container Storage Interface (CSI) for Kubernetes Goes Beta .
Die meisten CSI-Plug-ins setzen voraus, dass das Flag --allow-privileged=true für die Binärdatei des API-Servers und die 'kubelet'-Binärdateien gesetzt ist. Dieses Flag ist in IBM Cloud Private standardmäßig aktiviert. Bei einer
IBM Cloud Private-Umgebung können Sie CSI Volume in einem Kubernetes-Pod verwenden, ohne eine zusätzliche Konfiguration vornehmen zu müssen.
Die Beispieldateien, die in dieser Beispielbereitstellung verwendet werden, sind über das Kubernetes-GitHub-Repository verfügbar. Weitere Informationen hierzu finden Sie unter kubernetes-csi/drivers .
Klonen Sie das Repository kubernetes-csi/drivers .
Wechseln Sie in das Verzeichnis nfs.
cd drivers/pkg/nfs
Erstellen Sie die Bereitstellung.
kubectl create -f ./deploy/kubernetes/
Die Ausgabe wird wie folgt angezeigt:
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
Stellen Sie einen Pod bereit, indem Sie den erstellten CSI-Datenträger verwenden.
Lokalisieren Sie den NFS-Server.
showmount -e
Die Ausgabe wird wie folgt angezeigt:
Export list for nfsserver:
/nfs *
Bearbeiten Sie die Datei examples/kubernetes/nginx.yaml. Aktualisieren Sie die Parameter server und share so, dass sie Ihren Systemeinstellungen entsprechen.
cat examples/kubernetes/nginx.yaml | grep csi -A 5
Die Ausgabe wird wie folgt angezeigt:
csi:
driver: csi-nfsplugin
volumeHandle: data-id
volumeAttributes:
server: 10.10.25.7
share: /nfs
---
Erstellen Sie einen Pod unter Verwendung des NFS-Treibers.
kubectl create -f examples/kubernetes/nginx.yaml
Die Ausgabe wird wie folgt angezeigt:
persistentvolume "data-nfsplugin" created
persistentvolumeclaim "data-nfsplugin" created
pod "nginx" created
Überprüfen Sie den Mountpunkt.
Greifen Sie auf den NGINX-Container zu
kubectl exec -it nginx sh
Wechseln Sie in das Verzeichnis /var/www.
cd /var/www
Erstellen Sie eine Datei.
touch test
Listen Sie die Datei am Mountpunkt auf.
ls
Die Ausgabe wird wie folgt angezeigt:
test
Überprüfen Sie den NFS-Server.
Suchen Sie den Server.
hostname
Die Ausgabe wird wie folgt angezeigt:
nfsserver
Listen Sie die Dateien auf dem Server auf.
ls /nfs
Die Ausgabe wird wie folgt angezeigt:
test