Azure portalıyla AKS podlarını öldürmek için Chaos Mesh hatası kullanan bir kaos denemesi oluşturma
Denetimli bir ortamda bu hatalara neden olarak uygulamanızın hatalara dayanıklı olduğunu doğrulamak için bir kaos denemesi kullanabilirsiniz. Bu makalede, bir kaos denemesi ve Azure Chaos Studio kullanarak bir ad alanında düzenli Azure Kubernetes Service (AKS) pod hatalarına neden olursunuz. Bu denemeyi çalıştırmak, düzensiz hatalar olduğunda hizmetin kullanılamamasına karşı savunmanıza yardımcı olabilir.
Chaos Studio, Aks kümesine hata eklemek için Kubernetes için ücretsiz, açık kaynaklı bir kaos mühendisliği platformu olan Chaos Mesh'i kullanır. Chaos Mesh hataları, CHAOS Mesh'in AKS kümesine yüklenmesini gerektiren hizmet doğrudan hatalarıdır. Herhangi bir AKS Chaos Mesh hatası için bir deneme ayarlamak ve çalıştırmak için aynı adımları kullanabilirsiniz.
Önkoşullar
- Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
- Linux düğüm havuzuna sahip bir AKS kümesi. AKS kümeniz yoksa Azure CLI, Azure PowerShell veya Azure portalını kullanan AKS hızlı başlangıcına bakın.
Sınırlamalar
- Chaos Studio'da Sanal Ağ Ekleme'yi yapılandırarak Özel kümelerle Chaos Mesh hatalarını kullanabilirsiniz. Chaos Mesh'i ayarlamaya yönelik bu makaledeki adımlar da dahil olmak üzere özel kümeye verilen tüm komutların özel küme yönergelerini izlemesi gerekir. Önerilen yöntemler, aynı sanal ağdaki bir VM'den bağlanmayı veya AKS komut çağırma özelliğini kullanmayı içerir.
- AKS Chaos Mesh hataları yalnızca Linux düğüm havuzlarında desteklenir.
- AKS kümeniz yalnızca yetkili IP aralıklarına izin verecek şekilde yapılandırılmışsa Chaos Studio'nun IP aralıklarına izin vermeniz gerekir. Bunları, Hizmet Etiketi Bulma API'si veya indirilebilir JSON dosyalarıyla hizmet etiketini sorgulayarak
ChaosStudio
bulabilirsiniz.
AKS kümenizde Chaos Mesh'i ayarlama
Chaos Studio'da Chaos Mesh hatalarını çalıştırabilmeniz için önce AKS kümenize Chaos Mesh yüklemeniz gerekir.
Etkin aboneliğin AKS kümenizin dağıtıldığı abonelik olarak ayarlandığı bir Azure Cloud Shell penceresinde aşağıdaki komutları çalıştırın. ve
MyResourceGroup
değerini kümenizin ve kaynak grubunuzun adıyla değiştirinMyManagedCluster
.az aks get-credentials --admin --name MyManagedCluster --resource-group MyResourceGroup
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
Aşağıdaki komutu çalıştırarak Chaos Mesh podlarının yüklendiğini doğrulayın:
kubectl get po -n chaos-testing
Aşağıdaki örneğe benzer bir çıktı görmeniz gerekir (bir chaos-controller-manager ve bir veya daha fazla chaos-daemon):
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
Chaos Mesh web sitesindeki yükleme yönergelerini de kullanabilirsiniz.
AKS kümenizde Chaos Studio'yu etkinleştirme
Bu kaynak önce Chaos Studio'ya eklenmediği sürece Chaos Studio bir kaynağa hata ekleyemez. Kaynak üzerinde bir hedef ve özellikler oluşturarak Chaos Studio'ya bir kaynak eklersiniz. AKS kümelerinin tek bir hedef türü (doğrudan hizmet) vardır, ancak diğer kaynaklarda en fazla iki hedef türü olabilir. Bir hedef türü, hizmet doğrudan hataları içindir. Başka bir hedef türü aracı tabanlı hatalar içindir. Chaos Mesh hatasının her türü PodChaos, NetworkChaos ve IOChaos gibi bir özellik olarak temsil edilir.
Azure portalını açın.
Arama çubuğunda Chaos Studio'yu arayın.
Hedefler'i seçin ve AKS kümenize gidin.
AKS kümenizin yanındaki onay kutusunu seçin. Hedefleri etkinleştir'i ve ardından açılan menüden Hizmet doğrudan hedeflerini etkinleştir'i seçin.
İstenen kaynağın listelendiğini onaylayın. Gözden Geçir + Etkinleştir'i ve ardından Etkinleştir'i seçin.
Seçtiğiniz kaynakların başarıyla etkinleştirildiğini belirten bir bildirim görüntülenir.
Şimdi AKS kümenizi Chaos Studio'ya başarıyla eklediniz. Hedefler görünümünde, bu kaynakta etkinleştirilen özellikleri de yönetebilirsiniz. Kaynağın yanındaki Eylemleri yönet bağlantısını seçerek bu kaynak için etkinleştirilen özellikleri görüntüleyin.
Deneme oluşturma
Artık denemenizi oluşturabilirsiniz. Kaos denemesi, hedef kaynaklara karşı uygulamak istediğiniz eylemleri tanımlar. Eylemler sıralı adımlarla düzenlenir ve çalıştırılır. Kaos denemesi, paralel olarak çalışan dallara karşı yapmak istediğiniz eylemleri de tanımlar.
Chaos Studio'da Denemeler sekmesini seçin. Bu görünümde, tüm kaos denemelerinizi görebilir ve yönetebilirsiniz. Yeni deneme oluştur'u>seçin.
Kaos denemesini dağıtmak istediğiniz Abonelik, Kaynak Grubu ve Konum'u doldurun. Denemenize bir ad verin. İleri: Deneme tasarımcısı'nı seçin.
Şimdi Chaos Studio deneme tasarımcısındasınız. Deneme tasarımcısı adımlar, dallar ve hatalar ekleyerek denemenizi oluşturmanıza olanak tanır. Adım ve Dalınıza kolay bir ad verin ve Eylem > ekle Hata ekle'yi seçin.
Açılan listeden AKS Chaos Mesh Pod Chaos öğesini seçin. Süre'yi hatanın sürmesini istediğiniz dakika sayısıyla ve jsonSpec değerini aşağıdaki bilgilerle doldurun:
Chaos Mesh'inizi
jsonSpec
formüle etmek için:PodChaos türü gibi bir hata türü için Chaos Mesh belgelerine bakın.
Chaos Mesh belgelerini kullanarak bu hata türü için YAML yapılandırmasını formüle edin.
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
dışındaki
spec
tüm YAML'leri kaldırın (belirtim özelliği adı dahil) ve belirtim ayrıntılarının girintisini kaldırın.duration
parametresi gerekli değildir, ancak sağlanırsa kullanılır. Bu durumda kaldırın.action: pod-failure mode: all selector: namespaces: - default
Chaos Mesh YAML'yi JSON'a dönüştürmek ve en aza indirmek için bunun gibi bir YAML-JSON dönüştürücü kullanın.
{"action":"pod-failure","mode":"all","selector":{"namespaces":["default"]}}
Simge durumuna küçültülmüş JSON'yi portaldaki jsonSpec alanına yapıştırın.
İleri: Hedef kaynaklar'ı seçin.
AKS kümenizi seçin ve İleri'yi seçin.
Denemenizin doğru göründüğünü doğrulayın ve Gözden Geçir ve Oluştur'u> seçin.
AKS kümenize deneme izni verme
Bir kaos denemesi oluşturduğunuzda Chaos Studio, hedef kaynaklarınızda hataları yürüten sistem tarafından atanan bir yönetilen kimlik oluşturur. Denemenin başarıyla çalışması için bu kimliğe hedef kaynak için uygun izinler verilmelidir.
AKS kümenize gidin ve Erişim denetimi (IAM) öğesini seçin.
Ekle>Rol ataması ekle’yi seçin.
Azure Kubernetes Service Kümesi Yönetici Rolü için arama yapın ve rolü seçin. İleri'yi seçin.
Üye seç'i seçin ve deneme adınızı arayın. Denemenizi seçin ve Seç'i seçin. Aynı kiracıda aynı ada sahip birden çok deneme varsa, deneme adınız rastgele karakterler eklenerek kesilir.
Gözden Geçir ve ata>Gözden Geçir + ata'yı seçin.
Denemenizi çalıştırma
Artık denemenizi çalıştırmaya hazırsınız. Etkiyi görmek için AKS kümesine genel bakışınızı açmanızı ve ayrı bir tarayıcı sekmesinde İçgörüler'e gitmenizi öneririz. Etkin Pod Sayısı için canlı veriler, denemenizi çalıştırmanın etkisini gösterir.
Denemeler görünümünde denemenizi seçin. Tamam'ı başlat'ı> seçin.
Durum Çalışıyor olarak değiştiğinde, çalışan denemenin ayrıntılarını görmek için Geçmiş'in altındaki en son çalıştırma için Ayrıntılar'ı seçin.
Sonraki adımlar
AKS Chaos Mesh hizmeti doğrudan denemesi çalıştırdığınıza göre artık şunları yapmaya hazırsınız: