Menggunakan Pratinjau Penyimpanan Kontainer Azure dengan Disk Ephemeral

Azure Container Storage adalah layanan manajemen volume, penyebaran, dan orkestrasi berbasis cloud yang dibangun secara asli untuk kontainer. Artikel ini menunjukkan cara mengonfigurasi Azure Container Storage untuk menggunakan Ephemeral Disk sebagai penyimpanan back-end untuk beban kerja Kubernetes Anda. Di akhir, Anda akan memiliki pod yang menggunakan NVMe lokal atau SSD sementara sebagai penyimpanannya.

Penting

Disk lokal bersifat sementara, yang berarti bahwa disk dibuat pada penyimpanan komputer virtual (VM) lokal dan tidak disimpan ke layanan penyimpanan Azure. Data akan hilang pada disk ini jika Anda menghentikan/membatalkan alokasi VM Anda. Anda hanya dapat membuat volume ephemeral generik Kubernetes dari kumpulan penyimpanan Disk Ephemeral. Jika Anda ingin membuat volume persisten, Anda harus mengaktifkan replikasi untuk kumpulan penyimpanan Anda.

Prasyarat

  • Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

  • Artikel ini memerlukan versi terbaru (2.35.0 atau yang lebih baru) dari Azure CLI. Lihat Cara menginstal Azure CLI. Jika Anda menggunakan lingkungan Bash di Azure Cloud Shell, versi terbaru sudah diinstal. Jika Anda berencana untuk menjalankan perintah secara lokal alih-alih di Azure Cloud Shell, pastikan untuk menjalankannya dengan hak istimewa administratif. Untuk informasi selengkapnya, lihat Mulai menggunakan Azure Cloud Shell.

  • Anda akan memerlukan klien baris perintah Kubernetes, kubectl. Ini sudah diinstal jika Anda menggunakan Azure Cloud Shell, atau Anda dapat menginstalnya secara lokal dengan menjalankan az aks install-cli perintah .

Catatan

Untuk menggunakan Azure Container Storage dengan Ephemeral Disk, kluster AKS Anda harus memiliki kumpulan node setidaknya tiga VM yang dioptimalkan penyimpanan seperti standard_l8s_v3. Kami menyarankan agar setiap VM memiliki minimal empat CPU virtual (vCPU).

Ketersediaan regional

Azure Container Storage hanya tersedia untuk subset wilayah Azure:

  • (Afrika) Afrika Selatan Utara
  • (Asia Pasifik) Australia Timur
  • (Asia Pasifik) Asia Timur
  • (Asia Pasifik) Jepang Timur
  • (Asia Pasifik) Korea Tengah
  • (Asia Pasifik) Asia Tenggara
  • (Asia Pasifik) India Tengah
  • (Eropa) Prancis Tengah
  • (Eropa) Eropa Utara
  • (Eropa) Eropa Barat
  • (Eropa) UK Selatan
  • (Eropa) Swedia Tengah
  • (Eropa) Swiss Utara
  • (Timur Tengah) UEA Utara
  • (Amerika Utara): US Timur
  • (Amerika Utara): US Timur 2
  • (Amerika Utara) US Barat
  • (Amerika Utara): US Barat 2
  • (Amerika Utara): US Barat 3
  • (Amerika Utara): US Tengah
  • (Amerika Utara) US Tengah Utara
  • (Amerika Utara) US Tengah Selatan
  • (Amerika Utara) US Tengah Barat
  • (Amerika Utara) Kanada Tengah
  • (Amerika Utara) Kanada Timur
  • (Amerika Selatan) Brasil Selatan

Membuat kumpulan penyimpanan

Pertama, buat kumpulan penyimpanan, yang merupakan pengelompokan penyimpanan logis untuk kluster Kubernetes Anda, dengan menentukannya dalam file manifes YAML.

Jika Anda mengaktifkan Azure Container Storage menggunakan az aks create perintah atau az aks update , Anda mungkin sudah memiliki kumpulan penyimpanan. Gunakan kubectl get sp -n acstor untuk mendapatkan daftar kumpulan penyimpanan. Jika Anda memiliki kumpulan penyimpanan yang sudah tersedia yang ingin Anda gunakan, Anda dapat melewati bagian ini dan melanjutkan ke Menampilkan kelas penyimpanan yang tersedia.

Anda memiliki tiga opsi untuk membuat kumpulan penyimpanan yang menggunakan Disk Ephemeral:

Membuat kumpulan penyimpanan dengan NVMe

Ikuti langkah-langkah ini untuk membuat kumpulan penyimpanan menggunakan NVMe lokal.

  1. Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti code acstor-storagepool.yaml.

  2. Tempelkan kode berikut dan simpan file. Nilai nama kumpulan penyimpanan bisa menjadi apa pun yang Anda inginkan.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: ephemeraldisk
      namespace: acstor
    spec:
      poolType:
        ephemeralDisk: {}
    
  3. Terapkan file manifes YAML untuk membuat kumpulan penyimpanan.

    kubectl apply -f acstor-storagepool.yaml 
    

    Saat pembuatan kumpulan penyimpanan selesai, Anda akan melihat pesan seperti:

    storagepool.containerstorage.azure.com/ephemeraldisk created
    

    Anda juga dapat menjalankan perintah ini untuk memeriksa status kumpulan penyimpanan. Ganti <storage-pool-name> dengan nilai nama kumpulan penyimpanan Anda. Untuk contoh ini, nilainya adalah ephemeraldisk.

    kubectl describe sp <storage-pool-name> -n acstor
    

Saat kumpulan penyimpanan dibuat, Azure Container Storage akan membuat kelas penyimpanan atas nama Anda, menggunakan konvensi acstor-<storage-pool-name>penamaan .

Membuat kumpulan penyimpanan dengan SSD sementara

Ikuti langkah-langkah ini untuk membuat kumpulan penyimpanan menggunakan SSD sementara.

  1. Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti code acstor-storagepool.yaml.

  2. Tempelkan kode berikut dan simpan file. Nilai nama kumpulan penyimpanan bisa menjadi apa pun yang Anda inginkan.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: ephemeraldisk
      namespace: acstor
    spec:
      poolType:
        ephemeralDisk:
          diskType: temp
    
  3. Terapkan file manifes YAML untuk membuat kumpulan penyimpanan.

    kubectl apply -f acstor-storagepool.yaml 
    

    Saat pembuatan kumpulan penyimpanan selesai, Anda akan melihat pesan seperti:

    storagepool.containerstorage.azure.com/ephemeraldisk created
    

    Anda juga dapat menjalankan perintah ini untuk memeriksa status kumpulan penyimpanan. Ganti <storage-pool-name> dengan nilai nama kumpulan penyimpanan Anda. Untuk contoh ini, nilainya adalah ephemeraldisk.

    kubectl describe sp <storage-pool-name> -n acstor
    

Saat kumpulan penyimpanan dibuat, Azure Container Storage akan membuat kelas penyimpanan atas nama Anda, menggunakan konvensi acstor-<storage-pool-name>penamaan .

Menampilkan kelas penyimpanan yang tersedia

Saat kumpulan penyimpanan siap digunakan, Anda harus memilih kelas penyimpanan untuk menentukan bagaimana penyimpanan dibuat secara dinamis saat membuat klaim volume persisten dan menyebarkan volume persisten.

Jalankan kubectl get sc untuk menampilkan kelas penyimpanan yang tersedia. Anda akan melihat kelas penyimpanan yang disebut acstor-<storage-pool-name>.

Penting

Jangan gunakan kelas penyimpanan yang ditandai internal. Ini adalah kelas penyimpanan internal yang diperlukan agar Azure Container Storage berfungsi.

Menyebarkan pod dengan volume ephemeral generik

Buat pod menggunakan Fio (Flexible I/O Tester) untuk benchmarking dan simulasi beban kerja, yang menggunakan volume sementara generik.

  1. Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti code acstor-pod.yaml.

  2. Tempelkan kode berikut dan simpan file.

    kind: Pod
    apiVersion: v1
    metadata:
      name: fiopod
    spec:
      nodeSelector:
        acstor.azure.com/io-engine: acstor
      containers:
        - name: fio
          image: nixery.dev/shell/fio
          args:
            - sleep
            - "1000000"
          volumeMounts:
            - mountPath: "/volume"
              name: ephemeralvolume
      volumes:
        - name: ephemeralvolume
          ephemeral:
            volumeClaimTemplate:
              metadata:
                labels:
                  type: my-ephemeral-volume
              spec:
                accessModes: [ "ReadWriteOnce" ]
                storageClassName: "acstor-ephemeraldisk-nvme" # replace with the name of your storage class if different
                resources:
                  requests:
                    storage: 1Gi
    
  3. Terapkan file manifes YAML untuk menyebarkan pod.

    kubectl apply -f acstor-pod.yaml
    

    Anda akan melihat output yang mirip dengan hal berikut:

    pod/fiopod created
    
  4. Periksa apakah pod berjalan dan bahwa klaim volume sementara telah berhasil terikat ke pod:

    kubectl describe pod fiopod
    kubectl describe pvc fiopod-ephemeralvolume
    
  5. Periksa pengujian fio untuk melihat statusnya saat ini:

    kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
    

Anda sekarang telah menyebarkan pod yang menggunakan Ephemeral Disk sebagai penyimpanannya, dan Anda dapat menggunakannya untuk beban kerja Kubernetes Anda.

Memperluas kumpulan penyimpanan

Anda dapat memperluas kumpulan penyimpanan yang didukung oleh NVMe lokal atau SSD sementara untuk meningkatkan skala dengan cepat dan tanpa waktu henti. Menyusutkan kumpulan penyimpanan saat ini tidak didukung.

Karena kumpulan penyimpanan yang didukung oleh Disk Ephemeral menggunakan sumber daya penyimpanan lokal pada node kluster AKS (VM), memperluas kumpulan penyimpanan memerlukan penambahan node lain ke kluster. Ikuti instruksi ini untuk memperluas kumpulan penyimpanan.

  1. Jalankan perintah berikut untuk menambahkan simpul ke kluster AKS. Ganti <cluster-name>, <nodepool name>, dan <resource-group-name> dengan nilai Anda sendiri. Untuk mendapatkan nama kumpulan simpul Anda, jalankan kubectl get nodes.

    az aks nodepool add --cluster-name <cluster name> --name <nodepool name> --resource-group <resource group> --node-vm-size Standard_L8s_v3 --node-count 1 --labels acstor.azure.com/io-engine=acstor
    
  2. Jalankan kubectl get nodes dan Anda akan melihat bahwa simpul telah ditambahkan ke kluster.

  3. Jalankan kubectl get sp -A dan Anda akan melihat bahwa kapasitas kumpulan penyimpanan telah meningkat.

Menghapus kumpulan penyimpanan

Jika Anda ingin menghapus kumpulan penyimpanan, jalankan perintah berikut. Ganti <storage-pool-name> dengan nama kumpulan penyimpanan.

kubectl delete sp -n acstor <storage-pool-name>

Opsional: Membuat kumpulan penyimpanan dengan replikasi volume (hanya NVMe)

Aplikasi yang menggunakan NVMe lokal dapat memanfaatkan replikasi penyimpanan untuk meningkatkan ketahanan. Replikasi saat ini tidak didukung untuk SSD sementara.

Azure Container Storage saat ini mendukung konfigurasi tiga replika dan lima replika. Jika Anda menentukan tiga replika, Anda harus memiliki setidaknya tiga simpul di kluster AKS Anda. Jika Anda menentukan lima replika, Anda harus memiliki setidaknya lima simpul.

Ikuti langkah-langkah ini untuk membuat kumpulan penyimpanan menggunakan NVMe lokal dengan replikasi.

Catatan

Karena kumpulan penyimpanan Disk Sementara menggunakan semua disk NVMe yang tersedia, Anda harus menghapus kumpulan penyimpanan NVMe lokal Disk Sementara yang ada sebelum membuat kumpulan penyimpanan baru dengan replikasi.

  1. Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti code acstor-storagepool.yaml.

  2. Tempelkan kode berikut dan simpan file. Nilai nama kumpulan penyimpanan bisa menjadi apa pun yang Anda inginkan. Atur replika ke 3 atau 5.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: nvme
      namespace: acstor
    spec:
      poolType:
        ephemeralDisk:
          diskType: nvme
          replicas: 3
    
  3. Terapkan file manifes YAML untuk membuat kumpulan penyimpanan.

    kubectl apply -f acstor-storagepool.yaml 
    

    Saat pembuatan kumpulan penyimpanan selesai, Anda akan melihat pesan seperti:

    storagepool.containerstorage.azure.com/nvme created
    

    Anda juga dapat menjalankan perintah ini untuk memeriksa status kumpulan penyimpanan. Ganti <storage-pool-name> dengan nilai nama kumpulan penyimpanan Anda. Untuk contoh ini, nilainya adalah nvme.

    kubectl describe sp <storage-pool-name> -n acstor
    

Saat kumpulan penyimpanan dibuat, Azure Container Storage akan membuat kelas penyimpanan atas nama Anda, menggunakan konvensi acstor-<storage-pool-name>penamaan . Sekarang Anda dapat menampilkan kelas penyimpanan yang tersedia dan membuat klaim volume persisten.

Buat klaim volume persisten

Klaim volume persisten (PVC) digunakan untuk mem-provisikan penyimpanan secara otomatis berdasarkan kelas penyimpanan. Ikuti langkah-langkah ini untuk membuat PVC menggunakan kelas penyimpanan baru.

  1. Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti code acstor-pvc.yaml.

  2. Tempelkan kode berikut dan simpan file. Nilai PVC name dapat menjadi apa pun yang Anda inginkan.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: ephemeralpvc
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: acstor-ephemeraldisk-nvme # replace with the name of your storage class if different
      resources:
        requests:
          storage: 100Gi
    
  3. Terapkan file manifes YAML untuk membuat PVC.

    kubectl apply -f acstor-pvc.yaml
    

    Anda akan melihat output yang serupa dengan:

    persistentvolumeclaim/ephemeralpvc created
    

    Anda dapat memverifikasi status PVC dengan menjalankan perintah berikut:

    kubectl describe pvc ephemeralpvc
    

Setelah PVC dibuat, PVC siap digunakan oleh pod.

Menyebarkan pod dan melampirkan volume persisten

Buat pod menggunakan Fio (Flexible I/O Tester) untuk simulasi benchmarking dan beban kerja, dan tentukan jalur pemasangan untuk volume persisten. Untuk claimName, gunakan nilai nama yang Anda gunakan saat membuat klaim volume persisten.

  1. Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti code acstor-pod.yaml.

  2. Tempelkan kode berikut dan simpan file.

    kind: Pod
    apiVersion: v1
    metadata:
      name: fiopod
    spec:
      nodeSelector:
        acstor.azure.com/io-engine: acstor
      volumes:
        - name: ephemeralpv
          persistentVolumeClaim:
            claimName: ephemeralpvc
      containers:
        - name: fio
          image: nixery.dev/shell/fio
          args:
            - sleep
            - "1000000"
          volumeMounts:
            - mountPath: "/volume"
              name: ephemeralpv
    
  3. Terapkan file manifes YAML untuk menyebarkan pod.

    kubectl apply -f acstor-pod.yaml
    

    Anda akan melihat output yang mirip dengan hal berikut:

    pod/fiopod created
    
  4. Periksa apakah pod berjalan dan bahwa klaim volume persisten telah berhasil terikat ke pod:

    kubectl describe pod fiopod
    kubectl describe pvc ephemeralpvc
    
  5. Periksa pengujian fio untuk melihat statusnya saat ini:

    kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
    

Anda sekarang telah menyebarkan pod yang menggunakan Ephemeral Disk sebagai penyimpanannya, dan Anda dapat menggunakannya untuk beban kerja Kubernetes Anda.

Melepas dan memasang kembali volume persisten

Untuk melepaskan volume persisten, hapus pod tempat volume persisten dilampirkan. Ganti <pod-name> dengan nama pod, misalnya fiopod.

kubectl delete pods <pod-name>

Untuk memasang kembali volume persisten, cukup referensikan nama klaim volume persisten dalam file manifes YAML seperti yang dijelaskan dalam Menyebarkan pod dan melampirkan volume persisten.

Untuk memeriksa volume persisten mana yang terikat dengan klaim volume persisten, jalankan kubectl get pvc <persistent-volume-claim-name>.

Lihat juga