Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyebarkan aplikasi sampel dan memverifikasi bahwa driver CSI berfungsi
Anda dapat menguji fungsionalitas driver CSI dengan aplikasi sampel. Topik ini menunjukkan satu contoh, tetapi Anda juga dapat melakukan hal berikut:
-
Terapkan aplikasi sampel yang menggunakan snapshotter eksternal untuk membuat snapshot volume. Untuk informasi selengkapnya, lihat Snapshot Volume
diGitHub. -
Menerapkan aplikasi sampel yang menggunakan pengubahan ukuran volume. Untuk informasi selengkapnya, lihat Mengubah Ukuran Volume
diGitHub.
Prosedur ini menggunakan contoh penyediaan volume Dinamis
-
Kloning GitHub repositori driver Amazon EBS Container Storage Interface (CSI)
ke sistem lokal Anda. git clone https://github.com/kubernetes-sigs/aws-ebs-csi-driver.git
-
Navigasikan ke direktori contoh
dynamic-provisioning
.cd aws-ebs-csi-driver/examples/kubernetes/dynamic-provisioning/
-
(Opsional)
File ini menyediakan volumemanifests/storageclass.yaml
gp2
Amazon EBS secara default. Untuk menggunakangp3
volume sebagai gantinya, tambahkantype: gp3
ke
.manifests/storageclass.yaml
echo "parameters: type: gp3" >> manifests/storageclass.yaml
-
Deploy kelas penyimpanan
ebs-sc
, klaim volumeebs-claim
yang persisten, dan contoh aplikasiapp
dari direktori
.manifests
kubectl apply -f manifests/
-
Jelaskan tentang kelas penyimpanan
ebs-sc
.kubectl describe storageclass ebs-sc
Contoh output adalah sebagai berikut.
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>
catatan
Kelas penyimpanan menggunakan mode pengikatan
WaitForFirstConsumer
volume. Ini berarti bahwa volume tidak disediakan secara dinamis sampai Pod membuat klaim volume persisten. Untuk informasi selengkapnya, lihat Mode Pengikatan Volumedalam Kubernetes dokumentasi. -
Tonton Pods di namespace default. Setelah beberapa menit,
app
Pod status berubah menjadiRunning
.kubectl get pods --watch
Masukkan
Ctrl
+C
untuk kembali ke prompt shell. -
Buat daftar volume yang persisten dalam namespace default. Cari volume persisten dengan klaim
default/ebs-claim
.kubectl get pv
Contoh output adalah sebagai berikut.
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 -
Jelaskan volume persisten. Ganti
pvc-
dengan nilai dari output pada langkah sebelumnya.37717cd6-d0dc-11e9-b17f-06fad4858a5a
kubectl describe pv pvc-
37717cd6-d0dc-11e9-b17f-06fad4858a5a
Contoh output adalah sebagai berikut.
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>ID Volume Amazon EBS adalah nilai untuk
VolumeHandle
pada output sebelumnya. -
Verifikasi bahwa Pod sedang menulis data ke volume.
kubectl exec -it app -- cat /data/out.txt
Contoh output adalah sebagai berikut.
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 [...]
-
Setelah selesai, hapus sumber daya untuk aplikasi contoh ini.
kubectl delete -f manifests/