Menggunakan Pratinjau Azure Container Storage dengan disk terkelola Azure

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 disk terkelola Azure sebagai penyimpanan back-end untuk beban kerja Kubernetes Anda. Pada akhirnya, Anda akan memiliki pod yang menggunakan disk terkelola Azure sebagai penyimpanannya.

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 disk terkelola Azure, kluster AKS Anda harus memiliki kumpulan simpul setidaknya tiga VM tujuan umum seperti standard_d4s_v5 untuk node kluster, masing-masing dengan 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. Jika Anda memiliki disk terkelola Azure yang sudah disediakan, Anda dapat membuat kumpulan penyimpanan yang telah disediakan sebelumnya menggunakan disk tersebut.

Penting

Jika Anda ingin menggunakan kunci Anda sendiri untuk mengenkripsi volume Anda alih-alih menggunakan kunci yang dikelola Microsoft, jangan buat kumpulan penyimpanan Anda menggunakan langkah-langkah di bagian ini. Sebagai gantinya, buka Mengaktifkan enkripsi sisi server dengan kunci yang dikelola pelanggan dan ikuti langkah-langkah di sana.

Ikuti langkah-langkah ini untuk membuat kumpulan penyimpanan untuk Azure Disks.

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

  2. Tempelkan dalam kode berikut. Nilai nama kumpulan penyimpanan bisa menjadi apa pun yang Anda inginkan. Untuk skuName, tentukan tingkat performa dan redundansi. Nilai yang dapat diterima adalah Premium_LRS, Standard_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, PremiumV2_LRS, dan StandardSSD_ZRS. Untuk penyimpanan, tentukan jumlah kapasitas penyimpanan untuk kumpulan di Gi atau Ti. Simpan file.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: azuredisk
      namespace: acstor
    spec:
      poolType:
        azureDisk:
          skuName: Premium_LRS
      resources:
        requests:
          storage: 1Ti
    
  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/azuredisk 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 azuredisk.

    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.

Membuat kumpulan penyimpanan yang telah disediakan sebelumnya

Jika Anda memiliki disk terkelola Azure yang sudah disediakan, Anda dapat membuat kumpulan penyimpanan yang telah disediakan sebelumnya menggunakan disk tersebut. Karena disk sudah disediakan, Anda tidak perlu menentukan skuName atau kapasitas penyimpanan saat membuat kumpulan penyimpanan.

Ikuti langkah-langkah ini untuk membuat kumpulan penyimpanan yang telah disediakan sebelumnya untuk Azure Disks.

  1. Masuk ke portal Azure.

  2. Untuk setiap disk yang ingin Anda gunakan, navigasikan ke disk terkelola Azure dan pilih Pengaturan> Properti. Salin seluruh string di bawah ID Sumber Daya dan letakkan dalam file teks.

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

  4. Tempelkan dalam kode berikut. Nilai nama kumpulan penyimpanan bisa menjadi apa pun yang Anda inginkan. Ganti <resource-id> dengan ID sumber daya dari setiap disk terkelola. Simpan file.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: sp-preprovisioned
      namespace: acstor
    spec:
      poolType:
        azureDisk:
          disks:
            - reference <resource-id1>
            - reference <resource-id2>
    
  5. 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/sp-preprovisioned 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 akan diprovisikan sebelumnya sp.

    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.

Mengaktifkan enkripsi sisi server dengan kunci yang dikelola pelanggan

Jika Anda sudah membuat kumpulan penyimpanan atau lebih suka menggunakan kunci enkripsi default yang dikelola Microsoft, lewati bagian ini dan lanjutkan ke Tampilkan kelas penyimpanan yang tersedia.

Semua data dalam akun penyimpanan Azure dienkripsi saat tidak aktif. Secara default, data dienkripsi dengan kunci yang dikelola Microsoft. Untuk kontrol lebih besar atas kunci enkripsi, Anda dapat menyediakan kunci yang dikelola pelanggan (CMK) untuk mengenkripsi volume persisten yang akan Anda buat dari kumpulan penyimpanan Disk Azure.

Untuk menggunakan kunci Anda sendiri, Anda harus memiliki Azure Key Vault dengan kunci. Key Vault harus mengaktifkan perlindungan penghapusan menyeluruh, dan harus menggunakan model izin Azure RBAC. Pelajari selengkapnya tentang kunci yang dikelola pelanggan di Linux.

Saat membuat kumpulan penyimpanan, Anda harus menentukan parameter CMK. Parameter enkripsi CMK yang diperlukan adalah:

  • keyVersion menentukan versi kunci yang akan digunakan
  • keyName adalah nama kunci Anda
  • keyVaultUri adalah pengidentifikasi sumber daya seragam Azure Key Vault, misalnya https://user.vault.azure.net
  • Identitas menentukan identitas terkelola dengan akses ke vault, misalnya /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourcegroups/MC_user-acstor-westus2-rg_user-acstor-westus2_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/user-acstor-westus2-agentpool

Ikuti langkah-langkah ini untuk membuat kumpulan penyimpanan menggunakan kunci enkripsi Anda sendiri. Semua volume persisten yang dibuat dari kumpulan penyimpanan ini akan dienkripsi menggunakan kunci yang sama.

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

  2. Tempelkan kode berikut, berikan parameter yang diperlukan, dan simpan file. Nilai nama kumpulan penyimpanan bisa menjadi apa pun yang Anda inginkan. Untuk skuName, tentukan tingkat performa dan redundansi. Nilai yang dapat diterima adalah Premium_LRS, Standard_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, PremiumV2_LRS, dan StandardSSD_ZRS. Untuk penyimpanan, tentukan jumlah kapasitas penyimpanan untuk kumpulan di Gi atau Ti. Pastikan untuk menyediakan parameter enkripsi CMK.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: azuredisk
      namespace: acstor
    spec:
      poolType:
        azureDisk:
          skuName: Premium_LRS
          encryption: {
            keyVersion: "<key-version>",
            keyName: "<key-name>",
            keyVaultUri: "<key-vault-uri>",
            identity: "<identity>"
          }
      resources:
        requests:
          storage: 1Ti
    
  3. Terapkan file manifes YAML untuk membuat kumpulan penyimpanan.

    kubectl apply -f acstor-storagepool-cmk.yaml 
    

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

    storagepool.containerstorage.azure.com/azuredisk 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 azuredisk.

    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.

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: azurediskpvc
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: acstor-azuredisk # 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/azurediskpvc created
    

    Anda dapat memverifikasi status PVC dengan menjalankan perintah berikut:

    kubectl describe pvc azurediskpvc
    

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: azurediskpv
          persistentVolumeClaim:
            claimName: azurediskpvc
      containers:
        - name: fio
          image: nixery.dev/shell/fio
          args:
            - sleep
            - "1000000"
          volumeMounts:
            - mountPath: "/volume"
              name: azurediskpv
    
  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 azurediskpvc
    
  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 Azure Disks 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>.

Memperluas kumpulan penyimpanan

Anda dapat memperluas kumpulan penyimpanan yang didukung oleh Azure Disks untuk meningkatkan skala dengan cepat dan tanpa waktu henti. Menyusutkan kumpulan penyimpanan saat ini tidak didukung.

Catatan

Memperluas kumpulan penyimpanan dapat meningkatkan biaya Anda untuk Azure Container Storage dan Azure Disks. Lihat halaman harga Azure Container Storage.

Ikuti instruksi ini untuk memperluas kumpulan penyimpanan yang ada untuk Azure Disks.

  1. Menggunakan editor teks, buka file manifes YAML yang Anda gunakan untuk membuat kumpulan penyimpanan, misalnya code acstor-storagepool.yaml.

  2. Ganti entri penyimpanan yang ditentukan dalam file manifes YAML dengan nilai yang diinginkan. Nilai ini harus lebih besar dari kapasitas kumpulan penyimpanan saat ini. Misalnya, jika spesifikasi diatur ke storage: 1Ti, ubah menjadi storage: 2Ti. Jika Anda membuat kumpulan penyimpanan yang telah disediakan sebelumnya, tidak akan ada entri penyimpanan karena kumpulan penyimpanan mewarisi ukuran kapasitas dari Azure Disk yang telah disediakan sebelumnya. Jika Anda tidak melihat entri penyimpanan di YAML, tambahkan kode berikut yang menentukan kapasitas penyimpanan yang diinginkan lalu simpan file manifes:

    spec:
      resources:
        requests:
          storage: 2Ti
    
  3. Terapkan file manifes YAML untuk memperluas kumpulan penyimpanan.

    kubectl apply -f acstor-storagepool.yaml 
    
  4. Jalankan perintah ini untuk memeriksa status kumpulan penyimpanan. Ganti <storage-pool-name> dengan nilai nama kumpulan penyimpanan Anda.

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

    Anda akan melihat pesan seperti "kumpulan penyimpanan sedang diperluas." Jalankan perintah lagi setelah beberapa menit dan pesan akan hilang.

  5. Jalankan kubectl get sp -A dan kumpulan penyimpanan harus mencerminkan ukuran baru.

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>

Lihat juga