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

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

    Azure portalında Hedefler görünümünü gösteren ekran görüntüsü.

  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.

    Azure portalında hedefleri etkinleştirmeyi gösteren ekran görüntüsü.

  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.

    Hedefin başarıyla etkinleştirildiğini gösteren bildirimi gösteren ekran görüntüsü.

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

    Azure portalında Denemeler görünümünü gösteren ekran görüntüsü.

  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.

    Temel deneme ayrıntılarını eklemeyi gösteren ekran görüntüsü.

  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.

    Deneme tasarımcısını gösteren ekran görüntüsü.

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

    Hata özelliklerini gösteren ekran görüntüsü.

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

    Hedef eklemeyi gösteren ekran görüntüsü.

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

    Denemeyi gözden geçirmeyi ve oluşturmayı gösteren ekran görüntüsü.

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.

    AKS Genel Bakış sayfasını gösteren ekran görüntüsü.

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

    Erişim denetimine (IAM) genel bakışını gösteren ekran görüntüsü.

  3. Azure Kubernetes Service Kümesi Yönetici Rolü için arama yapın ve rolü seçin. İleri'yi seçin.

    AKS Kümesi Yöneticisi rolünü atamayı gösteren ekran görüntüsü.

  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.

    Role deneme eklemeyi gösteren ekran görüntüsü.

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

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

    Deneme başlatmayı gösteren ekran görüntüsü.

  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: