Menyebarkan aplikasi sampel dan memverifikasi bahwa driver CSI berfungsi - Amazon EKS

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 dari GitHub repositori driver Amazon EBS Container Storage Interface (CSI) untuk menggunakan volume Amazon EBS yang disediakan secara dinamis.

  1. 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
  2. Navigasikan ke direktori contoh dynamic-provisioning.

    cd aws-ebs-csi-driver/examples/kubernetes/dynamic-provisioning/
  3. (Opsional) manifests/storageclass.yaml File ini menyediakan volume gp2 Amazon EBS secara default. Untuk menggunakan gp3 volume sebagai gantinya, tambahkan type: gp3 kemanifests/storageclass.yaml.

    echo "parameters: type: gp3" >> manifests/storageclass.yaml
  4. Deploy kelas penyimpanan ebs-sc, klaim volume ebs-claim yang persisten, dan contoh aplikasi app dari direktori manifests.

    kubectl apply -f manifests/
  5. 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 Volume dalam Kubernetes dokumentasi.

  6. 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.

  7. 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
  8. Jelaskan volume persisten. Ganti pvc-37717cd6-d0dc-11e9-b17f-06fad4858a5a dengan nilai dari output pada langkah sebelumnya.

    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.

  9. 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
    [...]
  10. Setelah selesai, hapus sumber daya untuk aplikasi contoh ini.

    kubectl delete -f manifests/