Buat eksperimen chaos yang menggunakan kesalahan Chaos Mesh untuk mematikan pod AKS dengan portal Microsoft Azure

Anda dapat menggunakan eksperimen chaos untuk memverifikasi bahwa aplikasi Anda tahan terhadap kegagalan dengan menyebabkan kegagalan tersebut dalam lingkungan yang terkendali. Dalam artikel ini, Anda menyebabkan kegagalan pod Azure Kubernetes Service (AKS) berkala pada namespace dengan menggunakan eksperimen chaos dan Azure Chaos Studio. Menjalankan eksperimen ini dapat membantu Anda bertahan dari ketidaktersediaan layanan saat terjadi kegagalan sporadis.

Chaos Studio menggunakan Chaos Mesh, platform rekayasa kekacauan sumber terbuka gratis untuk Kubernetes, untuk menyuntikkan kesalahan ke dalam kluster AKS. Kesalahan Chaos Mesh adalah kesalahan layanan-langsung yang mengharuskan Chaos Mesh diinstal di kluster AKS. Anda dapat menggunakan langkah-langkah yang sama ini untuk menyiapkan dan menjalankan eksperimen untuk kesalahan AKS Chaos Mesh apa pun.

Prasyarat

Batasan

  • Anda dapat menggunakan kesalahan Chaos Mesh dengan kluster privat dengan mengonfigurasi Injeksi VNet di Chaos Studio. Setiap perintah yang dikeluarkan untuk kluster privat, termasuk langkah-langkah dalam artikel ini untuk menyiapkan Chaos Mesh, perlu mengikuti panduan kluster privat. Metode yang direkomendasikan termasuk menyambungkan dari VM di jaringan virtual yang sama atau menggunakan fitur pemanggilan perintah AKS.
  • Kesalahan AKS Chaos Mesh hanya didukung pada kumpulan simpul Linux.
  • Saat ini, kesalahan Chaos Mesh tidak berfungsi jika kluster AKS menonaktifkan akun lokal.
  • Jika kluster AKS Anda dikonfigurasi untuk hanya mengizinkan rentang IP resmi, Anda perlu mengizinkan rentang IP Chaos Studio. Anda dapat menemukannya dengan mengkueri ChaosStudiotag layanan dengan API Penemuan Tag Layanan atau file JSON yang dapat diunduh.

Siapkan Chaos Mesh di kluster AKS Anda

Sebelum dapat menjalankan kesalahan Chaos Mesh di Chaos Studio, Anda harus menginstal Chaos Mesh di kluster AKS Anda.

  1. Jalankan perintah berikut di jendela Azure Cloud Shell tempat Anda memiliki langganan aktif yang diatur menjadi langganan tempat kluster AKS disebarkan. Ganti $RESOURCE_GROUP dan $CLUSTER_NAME dengan grup sumber daya dan nama sumber daya kluster Anda.

    az aks get-credentials -g $RESOURCE_GROUP -n $CLUSTER_NAME
    
    helm repo add chaos-mesh https://charts.chaos-mesh.org
    helm repo update
    kubectl create ns chaos-testing
    helm install chaos-mesh chaos-mesh/chaos-mesh --namespace=chaos-testing --set chaosDaemon.runtime=containerd --set chaosDaemon.socketPath=/run/containerd/containerd.sock
    
  2. Verifikasi bahwa pod Chaos Mesh diinstal dengan menjalankan perintah berikut:

    kubectl get po -n chaos-testing
    

    Anda akan melihat output yang mirip dengan contoh berikut (chaos-controller-manager dan satu atau beberapa chaos-daemons):

    NAME                                        READY   STATUS    RESTARTS   AGE
    chaos-controller-manager-69fd5c46c8-xlqpc   1/1     Running   0          2d5h
    chaos-daemon-jb8xh                          1/1     Running   0          2d5h
    chaos-dashboard-98c4c5f97-tx5ds             1/1     Running   0          2d5h
    

Anda juga dapat menggunakan instruksi penginstalan di situs web Chaos Mesh.

Aktifkan Chaos Studio di kluster AKS Anda

Chaos Studio tidak dapat menyuntikkan kesalahan terhadap sumber daya kecuali sumber daya tersebut ditambahkan ke Chaos Studio terlebih dahulu. Anda menambahkan sumber daya ke Chaos Studio dengan membuat target dan kemampuan pada sumber daya. Kluster AKS hanya memiliki satu jenis target (service-direct), tetapi sumber daya lain mungkin memiliki hingga dua jenis target. Salah satu jenis target adalah untuk kesalahan langsung layanan. Jenis target lain adalah untuk kesalahan berbasis agen. Setiap jenis kesalahan Chaos Mesh diwakili sebagai kemampuan seperti PodChaos, NetworkChaos, dan IOChaos.

  1. Buka portal Microsoft Azure.

  2. Cari Chaos Studio di bilah pencarian.

  3. Pilih Target dan buka kluster AKS Anda.

    Screenshot that shows the Targets view in the Azure portal.

  4. Pilih kotak centang di samping kluster AKS Anda. Pilih Aktifkan target lalu pilih Aktifkan target langsung layanan dari menu dropdown.

    Screenshot that shows enabling targets in the Azure portal.

  5. Konfirmasikan bahwa sumber daya yang diinginkan tercantum. Pilih Tinjau + Aktifkan, lalu Aktifkan.

  6. Pemberitahuan muncul yang menunjukkan bahwa sumber daya yang Anda pilih berhasil diaktifkan.

    Screenshot that shows the notification showing that the target was successfully enabled.

Anda sekarang telah berhasil menambahkan kluster AKS anda ke Chaos Studio. Dalam tampilan Target, Anda juga dapat mengelola kemampuan yang diaktifkan pada sumber daya ini. Pilih tautan Kelola tindakan di samping sumber daya untuk menampilkan kemampuan yang diaktifkan untuk sumber daya tersebut.

Membuat eksperimen

Sekarang Anda dapat membuat eksperimen Anda. Eksperimen chaos mendefinisikan tindakan yang ingin Anda ambil terhadap sumber daya target. Tindakan diatur dan dijalankan secara berurutan. Eksperimen chaos juga mendefinisikan tindakan yang ingin Anda ambil terhadap cabang, yang berjalan secara paralel.

  1. Pilih tab Eksperimen di Chaos Studio. Dalam tampilan ini, Anda dapat melihat dan mengelola semua eksperimen chaos Anda. Pilih Buat>Eksperimen baru.

    Screenshot that shows the Experiments view in the Azure portal.

  2. Isi Langganan, Grup Sumber Daya, dan Lokasi tempat Anda ingin menyebarkan eksperimen chaos. Beri nama eksperimen Anda. Pilih Berikutnya: Perancang eksperimen.

    Screenshot that shows adding basic experiment details.

  3. Anda sekarang berada di perancang eksperimen Chaos Studio. Perancang eksperimen memungkinkan Anda membangun eksperimen dengan menambahkan langkah, cabang, dan kesalahan. Berikan nama yang mudah diingat ke Langkah dan Cabang Anda dan pilih Tambahkan tindakan > Tambahkan kesalahan.

    Screenshot that shows the experiment designer.

  4. Pilih AKS Chaos Mesh Pod Chaos dari daftar dropdown. Isi Durasi dengan jumlah menit yang Anda inginkan agar kegagalan berlangsung dan jsonSpec dengan informasi berikut:

    Untuk merumuskan Chaos Mesh jsonSpecAnda :

    1. Lihat dokumentasi Chaos Mesh untuk jenis kesalahan, misalnya, jenis PodChaos.

    2. Rumuskan konfigurasi YAML untuk jenis kesalahan tersebut dengan menggunakan dokumentasi Chaos Mesh.

      apiVersion: chaos-mesh.org/v1alpha1
      kind: PodChaos
      metadata:
        name: pod-failure-example
        namespace: chaos-testing
      spec:
        action: pod-failure
        mode: all
        duration: '600s'
        selector:
          namespaces:
            - default
      
    3. Hapus YAML apa pun di luar spec (termasuk nama properti spesifikasi) dan hapus indentasi detail spesifikasi. Parameter duration tidak diperlukan, tetapi digunakan jika disediakan. Dalam hal ini, hapus.

      action: pod-failure
      mode: all
      selector:
        namespaces:
          - default
      
    4. Gunakan pengonversi YAML-ke-JSON seperti ini untuk mengonversi Chaos Mesh YAML ke JSON dan mengecilkannya.

      {"action":"pod-failure","mode":"all","selector":{"namespaces":["default"]}}
      
    5. Tempelkan JSON yang diminimalkan ke bidang jsonSpec di portal.

  5. Pilih Berikutnya: Sumber daya target.

    Screenshot that shows fault properties.

  6. Pilih kluster AKS Anda dan pilih Berikutnya.

    Screenshot that shows adding a target.

  7. Verifikasi bahwa eksperimen Anda terlihat benar dan pilih Tinjau + buat.>

    Screenshot that shows reviewing and creating an experiment.

Berikan izin eksperimen ke kluster AKS Anda

Saat membuat eksperimen chaos, Chaos Studio membuat identitas terkelola yang ditetapkan sistem yang mengeksekusi kesalahan pada sumber daya target Anda. Identitas ini harus diberi izin yang sesuai ke sumber daya target agar eksperimen berhasil berjalan.

  1. Buka kluster AKS Anda dan pilih Kontrol akses (IAM).

    Screenshot that shows the AKS Overview page.

  2. Pilih Tambahkan Tambahkan>penetapan peran.

    Screenshot that shows the Access control (IAM) overview.

  3. Telusuri Peran Admin Kluster Azure Kubernetes Service dan pilih peran. Pilih Selanjutnya.

    Screenshot that shows assigning the AKS Cluster Admin role.

  4. Pilih Pilih anggota dan cari nama eksperimen Anda. Pilih eksperimen Anda dan pilih Pilih. Jika ada beberapa eksperimen di penyewa yang sama dengan nama yang sama, nama eksperimen Anda dipotong dengan karakter acak ditambahkan.

    Screenshot that shows adding an experiment to a role.

  5. Pilih Tinjau + tetapkan>Tinjau + tetapkan.

Jalankan eksperimen Anda

Anda sekarang siap untuk menjalankan eksperimen Anda. Untuk melihat efeknya, kami sarankan Anda membuka gambaran umum kluster AKS dan membuka Insight di tab browser terpisah. Data langsung untuk Jumlah Pod Aktif menunjukkan efek menjalankan eksperimen Anda.

  1. Dalam tampilan Eksperimen, pilih eksperimen Anda. Pilih Mulai>OK.

    Screenshot that shows starting an experiment.

  2. Saat Status berubah menjadi Berjalan, pilih Detail untuk eksekusi terbaru di bawah Riwayat untuk melihat detail eksperimen yang sedang berjalan.

Langkah berikutnya

Sekarang setelah Anda menjalankan eksperimen langsung layanan AKS Chaos Mesh, Anda siap untuk: