إنشاء تجربة فوضى تستخدم خطأ Chaos Mesh لقتل جرابات AKS باستخدام مدخل Microsoft Azure

يمكنك استخدام تجربة الفوضى للتحقق من أن التطبيق الخاص بك مرن في مواجهة حالات الفشل عن طريق التسبب في هذه الإخفاقات في بيئة خاضعة للرقابة. في هذه المقالة، تتسبب في فشل جراب خدمة Azure Kubernetes (AKS) الدوري على مساحة اسم باستخدام تجربة الفوضى وAzure Chaos Studio. يمكن أن يساعدك تشغيل هذه التجربة في الدفاع ضد عدم توفر الخدمة عند حدوث حالات فشل متقطعة.

يستخدم Chaos Studio Chaos Mesh، وهو نظام أساسي مجاني مفتوح المصدر لهندسة الفوضى ل Kubernetes، لإدخال الأخطاء في مجموعة AKS. أخطاء Chaos Mesh هي أخطاء مباشرة للخدمة تتطلب تثبيت Chaos Mesh على مجموعة AKS. يمكنك استخدام هذه الخطوات نفسها لإعداد تجربة وتشغيلها لأي خطأ AKS Chaos Mesh.

المتطلبات الأساسية

القيود

  • يمكنك استخدام أخطاء Chaos Mesh مع المجموعات الخاصة عن طريق تكوين حقن VNet في Chaos Studio. تحتاج أي أوامر صادرة إلى نظام المجموعة الخاص، بما في ذلك الخطوات الواردة في هذه المقالة لإعداد Chaos Mesh، إلى اتباع إرشادات نظام المجموعة الخاصة. تتضمن الأساليب الموصى بها الاتصال من جهاز ظاهري في نفس الشبكة الظاهرية أو استخدام ميزة استدعاء أمر AKS.
  • يتم دعم أخطاء AKS Chaos Mesh فقط على تجمعات عقد Linux.
  • حاليا، لا تعمل أخطاء Chaos Mesh إذا تم تعطيل حسابات محلية لمجموعة AKS.
  • إذا تم تكوين نظام مجموعة AKS الخاص بك للسماح فقط لنطاقات IP المعتمدة، فأنت بحاجة إلى السماح لنطاقات IP الخاصة ب Chaos Studio. يمكنك العثور عليها عن طريق الاستعلام عن ChaosStudioعلامة الخدمة باستخدام واجهة برمجة تطبيقات اكتشاف علامة الخدمة أو ملفات JSON القابلة للتنزيل.

إعداد Chaos Mesh على مجموعة AKS الخاصة بك

قبل أن تتمكن من تشغيل أخطاء Chaos Mesh في Chaos Studio، يجب تثبيت Chaos Mesh على مجموعة AKS الخاصة بك.

  1. قم بتشغيل الأوامر التالية في نافذة Azure Cloud Shell حيث تم تعيين الاشتراك النشط ليكون الاشتراك حيث يتم نشر نظام مجموعة AKS الخاص بك. استبدل $RESOURCE_GROUP و $CLUSTER_NAME بمجموعة الموارد واسم مورد نظام المجموعة.

    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. تحقق من تثبيت جرابات Chaos Mesh عن طريق تشغيل الأمر التالي:

    kubectl get po -n chaos-testing
    

    يجب أن تشاهد إخراجا مشابها للمثال التالي (مدير وحدة تحكم الفوضى وواحد أو أكثر من برامج الفوضى الخفية):

    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 على الويب.

تمكين Chaos Studio على نظام مجموعة AKS

لا يمكن ل Chaos Studio إدخال أخطاء ضد مورد ما لم تتم إضافة هذا المورد إلى Chaos Studio أولا. يمكنك إضافة مورد إلى Chaos Studio عن طريق إنشاء هدف وقدرات على المورد. تحتوي مجموعات AKS على نوع هدف واحد فقط (مباشر للخدمة)، ولكن قد يكون للموارد الأخرى ما يصل إلى نوعين مستهدفين. نوع هدف واحد هو للأخطاء المباشرة للخدمة. نوع هدف آخر هو للأخطاء المستندة إلى العامل. يتم تمثيل كل نوع من أخطاء Chaos Mesh كقدرة مثل PodChaos وNetworkChaos وIoChaos.

  1. افتح مدخل Azure.

  2. ابحث عن Chaos Studio في شريط البحث.

  3. حدد Targets وانتقل إلى نظام مجموعة AKS.

    Screenshot that shows the Targets view in the Azure portal.

  4. حدد خانة الاختيار بجوار نظام مجموعة AKS. حدد Enable targets ثم حدد Enable service-direct targets من القائمة المنسدلة.

    Screenshot that shows enabling targets in the Azure portal.

  5. تأكد من إدراج المورد المطلوب. حدد Review + Enable، ثم Enable.

  6. يظهر إعلام يشير إلى تمكين الموارد التي حددتها بنجاح.

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

لقد أضفت الآن مجموعة AKS بنجاح إلى Chaos Studio. في طريقة العرض Targets، يمكنك أيضا إدارة الإمكانات الممكنة على هذا المورد. حدد الارتباط Manage actions بجوار مورد لعرض الإمكانات الممكنة لهذا المورد.

إنشاء تجربة

الآن يمكنك إنشاء تجربتك. تحدد تجربة الفوضى الإجراءات التي تريد اتخاذها ضد الموارد المستهدفة. يتم تنظيم الإجراءات وتشغيلها في خطوات متتالية. تحدد تجربة الفوضى أيضا الإجراءات التي تريد اتخاذها ضد الفروع، والتي تعمل بالتوازي.

  1. حدد علامة التبويب التجارب في Chaos Studio. في هذا العرض، يمكنك رؤية وإدارة جميع تجارب الفوضى الخاصة بك. حدد إنشاء>تجربة جديدة.

    Screenshot that shows the Experiments view in the Azure portal.

  2. املأ الاشتراك ومجموعة الموارد والموقع حيث تريد نشر تجربة الفوضى. أعط تجربتك اسما. حدد Next: Experiment designer.

    Screenshot that shows adding basic experiment details.

  3. أنت الآن في مصمم تجربة Chaos Studio. يسمح لك مصمم التجربة بإنشاء تجربتك عن طريق إضافة الخطوات والفروع والأخطاء. أدخل اسما مألوفا للخطوة والفرع وحدد إضافة إجراء > إضافة خطأ.

    Screenshot that shows the experiment designer.

  4. حدد AKS Chaos Mesh Pod Chaos من القائمة المنسدلة. املأ المدة بعدد الدقائق التي تريد أن يستمر الفشل فيها وjsonSpecبالمعلومات التالية:

    لصياغة شبكة الفوضى jsonSpecالخاصة بك :

    1. راجع وثائق Chaos Mesh لنوع خطأ، على سبيل المثال، نوع PodChaos.

    2. صياغة تكوين YAML لنوع الخطأ هذا باستخدام وثائق 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. إزالة أي YAML خارج (بما في spec ذلك اسم خاصية المواصفات) وإزالة المسافة البادئة من تفاصيل المواصفات. المعلمة duration ليست ضرورية، ولكن يتم استخدامها إذا تم توفيرها. في هذه الحالة، قم بإزالته.

      action: pod-failure
      mode: all
      selector:
        namespaces:
          - default
      
    4. استخدم محول YAML-to-JSON مثل هذا لتحويل Chaos Mesh YAML إلى JSON وتقليله.

      {"action":"pod-failure","mode":"all","selector":{"namespaces":["default"]}}
      
    5. الصق JSON المصغر في حقل jsonSpec في المدخل.

  5. حدد Next: Target resources.

    Screenshot that shows fault properties.

  6. حدد مجموعة AKS الخاصة بك وحدد التالي.

    Screenshot that shows adding a target.

  7. تحقق من أن تجربتك تبدو صحيحة وحدد Review + create>Create.

    Screenshot that shows reviewing and creating an experiment.

منح إذن التجربة إلى نظام مجموعة AKS

عند إنشاء تجربة فوضى، ينشئ Chaos Studio هوية مدارة معينة من قبل النظام تنفذ أخطاء ضد الموارد المستهدفة. يجب منح هذه الهوية الأذونات المناسبة للمورد الهدف لتشغيل التجربة بنجاح.

  1. انتقل إلى نظام مجموعة AKS وحدد Access control (IAM).

    Screenshot that shows the AKS Overview page.

  2. حدد إضافة>Add role assignmen.

    Screenshot that shows the Access control (IAM) overview.

  3. ابحث عن Azure Kubernetes Service Cluster مسؤول Role وحدد الدور. حدد التالي.

    Screenshot that shows assigning the AKS Cluster Admin role.

  4. اختر تحديد الأعضاء وابحث عن اسم التجربة. حدد تجربتك واختر تحديد. إذا كانت هناك تجارب متعددة في نفس المستأجر بنفس الاسم، يتم اقتطاع اسم التجربة الخاص بك مع إضافة أحرف عشوائية.

    Screenshot that shows adding an experiment to a role.

  5. حدد Review + assign>Review + assign.

تشغيل تجربتك

أنت الآن جاهز لتشغيل تجربتك. لمشاهدة التأثير، نوصي بفتح نظرة عامة على نظام مجموعة AKS والانتقال إلى نتائج التحليلات في علامة تبويب مستعرض منفصلة. تظهر البيانات المباشرة ل Active Pod Count تأثير تشغيل تجربتك.

  1. في طريقة عرض التجارب ، حدد تجربتك. حدد بدء>موافق.

    Screenshot that shows starting an experiment.

  2. عندما تتغير الحالة إلى قيد التشغيل، حدد تفاصيل لأحدث تشغيل ضمن المحفوظات للاطلاع على تفاصيل التجربة قيد التشغيل.

الخطوات التالية

الآن بعد أن قمت بتشغيل تجربة خدمة AKS Chaos Mesh المباشرة، فأنت على استعداد ل: