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
- Langganan Azure. Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
- Kluster AKS dengan kumpulan simpul Linux. Jika Anda tidak memiliki kluster AKS, lihat mulai cepat AKS yang menggunakan Azure CLI, Azure PowerShell, atau portal Azure.
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
ChaosStudio
tag 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.
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
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.
Buka portal Microsoft Azure.
Cari Chaos Studio di bilah pencarian.
Pilih Target dan buka kluster AKS Anda.
Pilih kotak centang di samping kluster AKS Anda. Pilih Aktifkan target lalu pilih Aktifkan target langsung layanan dari menu dropdown.
Konfirmasikan bahwa sumber daya yang diinginkan tercantum. Pilih Tinjau + Aktifkan, lalu Aktifkan.
Pemberitahuan muncul yang menunjukkan bahwa sumber daya yang Anda pilih berhasil diaktifkan.
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.
Pilih tab Eksperimen di Chaos Studio. Dalam tampilan ini, Anda dapat melihat dan mengelola semua eksperimen chaos Anda. Pilih Buat>Eksperimen baru.
Isi Langganan, Grup Sumber Daya, dan Lokasi tempat Anda ingin menyebarkan eksperimen chaos. Beri nama eksperimen Anda. Pilih Berikutnya: Perancang eksperimen.
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.
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
jsonSpec
Anda :Lihat dokumentasi Chaos Mesh untuk jenis kesalahan, misalnya, jenis PodChaos.
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
Hapus YAML apa pun di luar
spec
(termasuk nama properti spesifikasi) dan hapus indentasi detail spesifikasi. Parameterduration
tidak diperlukan, tetapi digunakan jika disediakan. Dalam hal ini, hapus.action: pod-failure mode: all selector: namespaces: - default
Gunakan pengonversi YAML-ke-JSON seperti ini untuk mengonversi Chaos Mesh YAML ke JSON dan mengecilkannya.
{"action":"pod-failure","mode":"all","selector":{"namespaces":["default"]}}
Tempelkan JSON yang diminimalkan ke bidang jsonSpec di portal.
Pilih Berikutnya: Sumber daya target.
Pilih kluster AKS Anda dan pilih Berikutnya.
Verifikasi bahwa eksperimen Anda terlihat benar dan pilih Tinjau + buat.>
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.
Buka kluster AKS Anda dan pilih Kontrol akses (IAM).
Pilih Tambahkan Tambahkan>penetapan peran.
Telusuri Peran Admin Kluster Azure Kubernetes Service dan pilih peran. Pilih Selanjutnya.
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.
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.
Dalam tampilan Eksperimen, pilih eksperimen Anda. Pilih Mulai>OK.
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: