Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Bereitstellen einer Beispielanwendung bereit und Überprüfung, ob der CSI-Treiber funktioniert
Sie können die CSI-Treiberfunktionalität mit einer Beispielanwendung testen. Dieses Thema zeigt ein Beispiel, Sie können jedoch auch Folgendes durchführen:
-
Stellen Sie eine Beispielanwendung bereit, die Volume-Snapshots mit dem externen Snapshotter verwendet. Weitere Informationen finden Sie unter Volume Snapshots
(Volume-Snapshots) auf GitHub. -
Stellen Sie eine Beispielanwendung bereit, die die Volume-Größenänderung verwendet. Weitere Informationen finden Sie unter Volume Resizing
(Volume-Größenänderung) auf GitHub.
In diesem Verfahren wird das Beispiel Dynamische Volume-Bereitstellung
-
Klonen Sie das GitHub-Repository Amazon-EBS-Container-Storage-Interface-Treiber (CSI)
auf Ihr lokales System. git clone https://github.com/kubernetes-sigs/aws-ebs-csi-driver.git
-
Navigieren Sie zum
dynamic-provisioning
-Beispielverzeichnis.cd aws-ebs-csi-driver/examples/kubernetes/dynamic-provisioning/
-
(Optional) Die Datei
stellt standardmäßigmanifests/storageclass.yaml
gp2
-Volumes von Amazon EBS bereit. Um stattdessengp3
-Volumes zu verwenden, fügen Sietype: gp3
zu
hinzu.manifests/storageclass.yaml
echo "parameters: type: gp3" >> manifests/storageclass.yaml
-
Stellen Sie die Speicherklasse
ebs-sc
, den persistenten Volume-Anspruchebs-claim
und die Beispielanwendungapp
aus dem
-Verzeichnis bereit.manifests
kubectl apply -f manifests/
-
Beschreiben Sie die
ebs-sc
-Speicherklasse.kubectl describe storageclass ebs-sc
Eine Beispielausgabe sieht wie folgt aus.
Name: ebs-sc IsDefaultClass: No Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"ebs-sc"},"provisioner":"ebs.csi.aws.com","volumeBindingMode":"WaitForFirstConsumer"} Provisioner: ebs.csi.aws.com Parameters: <none> AllowVolumeExpansion: <unset> MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
Anmerkung
Die Speicherklasse verwendet den
WaitForFirstConsumer
-Volume-Bindungsmodus. Das bedeutet, dass Volumes erst dann dynamisch bereitgestellt werden, wenn ein Pod einen persistenten Volume-Anspruch stellt. Weitere Informationen finden Sie unter Volume-Bindungsmodusin der Kubernetes-Dokumentation. -
Beobachten Sie die Pods im Standard-Namespace. Nach einigen Minuten ändert sich der Status des
app
-Pod inRunning
.kubectl get pods --watch
Geben Sie
Ctrl
+C
ein, um zu einer Shell-Eingabeaufforderung zurückzukehren. -
Listen Sie die persistenten Volumes im Standard-Namespace auf. Suchen Sie nach einem persistenten Volume mit dem
default/ebs-claim
-Anspruch.kubectl get pv
Eine Beispielausgabe sieht wie folgt aus.
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-
37717cd6-d0dc-11e9-b17f-06fad4858a5a
4Gi RWO Delete Bound default/ebs-claim ebs-sc 30s -
Beschreiben Sie das persistente Volume. Ersetzen Sie
pvc-
durch den Wert aus der Ausgabe im vorherigen Schritt.37717cd6-d0dc-11e9-b17f-06fad4858a5a
kubectl describe pv pvc-
37717cd6-d0dc-11e9-b17f-06fad4858a5a
Eine Beispielausgabe sieht wie folgt aus.
Name: pvc-
37717cd6-d0dc-11e9-b17f-06fad4858a5a
Labels: <none> Annotations: pv.kubernetes.io/provisioned-by: ebs.csi.aws.com Finalizers: [kubernetes.io/pv-protection external-attacher/ebs-csi-aws-com] StorageClass: ebs-sc Status: Bound Claim: default/ebs-claim Reclaim Policy: Delete Access Modes: RWO VolumeMode: Filesystem Capacity: 4Gi Node Affinity: Required Terms: Term 0: topology.ebs.csi.aws.com/zone in [region-code
] Message: Source: Type: CSI (a Container Storage Interface (CSI) volume source) Driver: ebs.csi.aws.com VolumeHandle:vol-0d651e157c6d93445
ReadOnly: false VolumeAttributes: storage.kubernetes.io/csiProvisionerIdentity=1567792483192
-8081-ebs.csi.aws.com Events: <none>Die Amazon EBS-Volume-ID ist der Wert für
VolumeHandle
in der vorherigen Ausgabe. -
Überprüfen Sie, ob der Pod Daten auf das Volume schreibt.
kubectl exec -it app -- cat /data/out.txt
Eine Beispielausgabe sieht wie folgt aus.
Wed May 5 16:17:03 UTC 2021 Wed May 5 16:17:08 UTC 2021 Wed May 5 16:17:13 UTC 2021 Wed May 5 16:17:18 UTC 2021 [...]
-
Wenn Sie fertig sind, löschen Sie die Ressourcen für diese Beispielanwendung.
kubectl delete -f manifests/