Bagikan melalui


Tutorial - Menyebarkan Azure Container Storage (versi 1.x.x) pada kluster AKS

Tutorial ini memperkenalkan Azure Container Storage dan menunjukkan cara menyebarkan dan mengelola penyimpanan asli kontainer untuk aplikasi yang berjalan di Azure Kubernetes Service (AKS). Jika Anda tidak ingin menyebarkan Azure Container Storage sekarang, Anda dapat melewati tutorial ini dan melanjutkan langsung ke Menyebarkan aplikasi di AKS. Anda tidak memerlukan Azure Container Storage untuk aplikasi etalase dasar dalam seri tutorial ini.

Penting

Artikel ini menjelaskan cara menginstal Azure Container Storage (versi 1.x.x), yang sekarang secara eksplisit memerlukan parameter --container-storage-version 1 penyematan versi untuk penginstalan. Azure Container Storage (versi 2.x.x) sekarang tersedia.

Azure Container Storage menyederhanakan manajemen aplikasi stateful di Kubernetes dengan menawarkan penyimpanan asli kontainer yang disesuaikan dengan berbagai beban kerja, termasuk database, platform analitik, dan aplikasi berperforma tinggi.

Pada akhir tutorial ini, Anda akan:

  • Pahami bagaimana Azure Container Storage mendukung beragam beban kerja di Kubernetes.
  • Jelajahi beberapa opsi backend penyimpanan untuk menyesuaikan penyimpanan dengan kebutuhan aplikasi Anda.
  • Sebarkan Azure Container Storage (versi 1.x.x) pada kluster AKS Anda dan buat volume ephemeral generik.

Sebelum Anda mulai

Dalam tutorial sebelumnya, Anda membuat gambar kontainer, mengunggahnya ke instans ACR, dan membuat kluster AKS. Mulai dengan Tutorial 1 - Siapkan aplikasi untuk diikuti AKS .

  • Tutorial ini memerlukan penggunaan Azure CLI versi 2.35.0 atau yang lebih baru. Portal dan PowerShell saat ini tidak didukung untuk Azure Container Storage. Periksa versi Anda dengan az --version. Untuk memasang atau meningkatkan, lihat Pasang Azure CLI. Jika Anda menggunakan lingkungan Bash di Azure Cloud Shell, versi terbaru sudah diinstal.
  • Anda harus memiliki kluster AKS berbasis Linux yang sudah ada dengan setidaknya 3 simpul menggunakan SKU VM yang dioptimalkan untuk Penyimpanan atau SKU VM yang dipercepat oleh GPU. Lihat Tutorial 3 - Membuat kluster AKS.
  • 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 .

Menginstal ekstensi Kubernetes

Tambahkan atau tingkatkan ke versi k8s-extension terbaru dengan menjalankan perintah berikut.

az extension add --upgrade --name k8s-extension

Sambungkan ke kluster dan periksa status simpul

Jika Anda belum tersambung ke kluster dari tutorial sebelumnya, jalankan perintah berikut. Jika Anda sudah tersambung, Anda dapat melewati bagian ini.

  1. Jalankan perintah berikut untuk menyambungkan ke kluster.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Verifikasi koneksi ke kluster Anda menggunakan kubectl get perintah . Perintah ini menampilkan daftar node kluster.

    kubectl get nodes
    
  3. Contoh output berikut menunjukkan simpul di kluster Anda. Pastikan status untuk semua simpul menunjukkan Siap:

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-nodepool1-34832848-vmss000000   Ready    agent   80m   v1.30.9
    aks-nodepool1-34832848-vmss000001   Ready    agent   80m   v1.30.9
    aks-nodepool1-34832848-vmss000002   Ready    agent   80m   v1.30.9
    

Pilih opsi penyimpanan cadangan

Azure Container Storage (versi 1.x.x) menggunakan kumpulan penyimpanan untuk menyediakan dan mengelola volume persisten dan generik. Ini menawarkan berbagai opsi penyimpanan back-end untuk kumpulan penyimpanan Anda, masing-masing cocok untuk beban kerja tertentu. Memilih jenis penyimpanan yang tepat sangat penting untuk mengoptimalkan performa beban kerja, durabilitas, dan efisiensi biaya. Untuk tutorial ini, kita akan menggunakan Disk Sementara dengan NVMe lokal sebagai penyimpanan cadangan untuk membuat volume sementara generik. Namun, kami juga akan menjelajahi opsi penyimpanan dukungan lainnya yang memungkinkan Anda membuat volume persisten.

Cakram Sementara

Disk Ephemeral menggunakan sumber daya penyimpanan lokal pada node AKS (baik NVMe lokal atau SSD sementara). Ini menawarkan latensi sub-ms rendah dan IOPS tinggi, tetapi tidak ada persistensi data jika VM dimulai ulang. Disk Efimeral paling cocok untuk aplikasi seperti Cassandra yang memprioritaskan kecepatan daripada persistensi, dan sangat ideal untuk beban kerja yang memiliki replikasi tingkat aplikasi sendiri.

Anda dapat menggunakan Disk Sementara untuk membuat volume sementara generik atau volume persisten, meskipun data akan hilang jika VM dimulai ulang.

Azure Disks

Ideal untuk database seperti PostgreSQL dan MongoDB, Azure Disk menawarkan durabilitas, skalabilitas, dan opsi performa multi-tingkat, termasuk SSD Premium dan Ultra SSD.

Azure Disk memungkinkan provisi volume penyimpanan otomatis dan menyertakan redundansi bawaan dan ketersediaan tinggi.

Azure Elastic SAN (pratinjau)

Dirancang untuk kebutuhan penyimpanan bersama dan database tujuan umum yang membutuhkan skalabilitas dan ketersediaan tinggi, Azure Elastic SAN cocok untuk beban kerja seperti alur CI/CD atau pemrosesan data skala besar.

Aktifkan Azure Container Storage (versi 1.x.x) dan buat kumpulan penyimpanan

Jalankan perintah berikut untuk menginstal Azure Container Storage pada kluster dan membuat kumpulan penyimpanan NVMe Lokal.

az aks update -n myAKSCluster -g myResourceGroup --enable-azure-container-storage ephemeralDisk --container-storage-version 1 --storage-pool-option NVMe

Penyebaran harus memerlukan waktu kurang dari 15 menit.

Memverifikasi status kumpulan penyimpanan

Setelah penyebaran selesai, komponen untuk jenis kumpulan penyimpanan yang Anda pilih akan diaktifkan, dan Anda akan memiliki kumpulan penyimpanan default.

Untuk mendapatkan daftar kumpulan penyimpanan yang tersedia, jalankan perintah berikut:

kubectl get sp -n acstor

Untuk memeriksa status kumpulan penyimpanan, jalankan perintah berikut:

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

Jika Message tidak menyatakan StoragePool is ready, maka kumpulan penyimpanan Anda masih dalam proses pembuatan atau mengalami masalah.

Menampilkan kelas penyimpanan yang tersedia

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

Jalankan kubectl get sc untuk menampilkan kelas penyimpanan yang tersedia. Anda akan melihat kelas penyimpanan yang disebut acstor-<storage-pool-name>. Gunakan kelas penyimpanan ini di bagian berikutnya untuk menyebarkan pod.

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
    

    Jika Anda mengubah ukuran penyimpanan volume, pastikan ukurannya kurang dari kapasitas disk ephemeral pada node tunggal yang tersedia. Jalankan kubectl get diskpool -n acstor untuk memeriksa kapasitas yang tersedia.

  3. Menerapkan file manifes YAML untuk menjalankan 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
    

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

Verifikasi kapasitas disk ephemeral yang tersedia sebelum menyediakan volume tambahan:

kubectl describe node <node-name>

Untuk mempelajari selengkapnya tentang Azure Container Storage (versi 1.x.x), termasuk cara membuat volume persisten, lihat Apa itu Azure Container Storage?

Membersihkan sumber daya

Anda tidak akan memerlukan Azure Container Storage untuk sisa seri tutorial ini, jadi sebaiknya hapus sekarang untuk menghindari dikenakan biaya Azure yang tidak perlu.

  1. Hapus pod.

    kubectl delete pod fiopod
    
  2. Hapus kumpulan penyimpanan.

    kubectl delete sp -n acstor <storage-pool-name>
    
  3. Hapus instans ekstensi.

    az aks update -n myAKSCluster -g myResourceGroup --disable-azure-container-storage all
    

Langkah berikutnya

Dalam tutorial ini, Anda menyebarkan Azure Container Storage (versi 1.x.x) di kluster AKS Anda. Anda mempelajari cara untuk:

  • Aktifkan Azure Container Storage (versi 1.x.x) pada kluster AKS Anda.
  • Pilih jenis penyimpanan cadangan dan buat kumpulan penyimpanan.
  • Menyebarkan pod dengan volume sementara generik.

Dalam tutorial berikutnya, Anda mempelajari cara menyebarkan aplikasi ke kluster Anda.