Aracılığıyla paylaş


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

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.
  • ŞU anda AKS kümesinde yerel hesaplar devre dışı bırakılmışsa Chaos Mesh hataları çalışmıyor.
  • 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 ChaosStudiobulabilirsiniz.

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.

  1. 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 $CLUSTER_NAME değerini küme kaynağınızın kaynak grubu ve adıyla değiştirin$RESOURCE_GROUP.

    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. 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.

  1. Azure portalını açın.

  2. Arama çubuğunda Chaos Studio'yu arayın.

  3. Hedefler'i seçin ve AKS kümenize gidin.

    Screenshot that shows the Targets view in the Azure portal.

  4. 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.

    Screenshot that shows enabling targets in the Azure portal.

  5. İstenen kaynağın listelendiğini onaylayın. Gözden Geçir + Etkinleştir'i ve ardından Etkinleştir'i seçin.

  6. Seçtiğiniz kaynakların başarıyla etkinleştirildiğini belirten bir bildirim görüntülenir.

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

Ş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.

  1. 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.

    Screenshot that shows the Experiments view in the Azure portal.

  2. 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.

    Screenshot that shows adding basic experiment details.

  3. Ş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.

    Screenshot that shows the experiment designer.

  4. Açılan listeden AKS Chaos Mesh Pod Chaos öğesini seçin. Süre'yihatanın sürmesini istediğiniz dakika sayısıyla ve jsonSpec değerini aşağıdaki bilgilerle doldurun:

    Chaos Mesh'inizi jsonSpecformüle etmek için:

    1. PodChaos türü gibi bir hata türü için Chaos Mesh belgelerine bakın.

    2. 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
      
    3. 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
      
    4. 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"]}}
      
    5. Simge durumuna küçültülmüş JSON'yi portaldaki jsonSpec alanına yapıştırın.

  5. İleri: Hedef kaynaklar'ı seçin.

    Screenshot that shows fault properties.

  6. AKS kümenizi seçin ve İleri'yi seçin.

    Screenshot that shows adding a target.

  7. Denemenizin doğru göründüğünü doğrulayın ve Gözden Geçir ve Oluştur'u> seçin.

    Screenshot that shows reviewing and creating an experiment.

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.

  1. AKS kümenize gidin ve Erişim denetimi (IAM) öğesini seçin.

    Screenshot that shows the AKS Overview page.

  2. Ekle>Rol ataması ekle’yi seçin.

    Screenshot that shows the Access control (IAM) overview.

  3. Rol Yönetici Azure Kubernetes Service Kümesi'ni arayın ve rolü seçin. İleri’yi seçin.

    Screenshot that shows assigning the AKS Cluster Admin role.

  4. Ü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.

    Screenshot that shows adding an experiment to a role.

  5. 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ümenize genel bakışınızı açmanızı ve ayrı bir tarayıcı sekmesinde Analizler gitmenizi öneririz. Etkin Pod Sayısı için canlı veriler, denemenizi çalıştırmanın etkisini gösterir.

  1. Denemeler görünümünde denemenizi seçin. Tamam'ı başlat'ı> seçin.

    Screenshot that shows starting an experiment.

  2. 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: