انتقل إلى المحتوى

ترقية وحدة تحكم NGINX Ingress المدمجة بوحدات Wallarm

تصف هذه التعليمات الخطوات لترقية وحدة تحكم NGINX Ingress المعتمدة على Wallarm من الإصدار 4.x إلى الإصدار الجديد مع عقدة Wallarm 4.10.

لترقية العقدة التي انتهى عمرها الافتراضي (3.6 أو أقل)، يرجى استخدام التعليمات المختلفة.

المتطلبات

  • Kubernetes platform version 1.26-1.30

  • Helm package manager

  • Compatibility of your services with the Community Ingress NGINX Controller version 1.11.5

  • Access to the account with the Administrator role in Wallarm Console for the US Cloud or EU Cloud

  • Access to https://us1.api.wallarm.com for working with US Wallarm Cloud or to https://api.wallarm.com for working with EU Wallarm Cloud

  • Access to https://charts.wallarm.com to add the Wallarm Helm charts. Ensure the access is not blocked by a firewall

  • Access to the Wallarm repositories on Docker Hub https://hub.docker.com/r/wallarm. Make sure the access is not blocked by a firewall

  • Access to the IP addresses below for downloading updates to attack detection rules and [API specifications][api-spec-enforcement-docs], as well as retrieving precise IPs for your [allowlisted, denylisted, or graylisted][ip-lists-docs] countries, regions, or data centers

    34.96.64.17
    34.110.183.149
    35.235.66.155
    34.102.90.100
    34.94.156.115
    35.235.115.105
    
    34.160.38.183
    34.144.227.90
    34.90.110.226
    

الخطوة 1: تحديث مستودع Wallarm Helm chart

helm repo update wallarm

الخطوة 2: فحص جميع التغييرات القادمة في مخطط K8s

لتجنب تغيير سلوك وحدة التحكم Ingress بشكل غير متوقع، قم بفحص جميع التغييرات القادمة في مخطط K8s باستخدام Helm Diff Plugin. يوفر هذا الإضافة الفرق بين مستندات K8s لنسخة وحدة التحكم Ingress المنشورة والنسخة الجديدة.

لتثبيت وتشغيل الإضافة:

  1. قم بتثبيت الإضافة:

    helm plugin install https://github.com/databus23/helm-diff
    
  2. تشغيل الإضافة:

    helm diff upgrade <RELEASE_NAME> -n <NAMESPACE> wallarm/wallarm-ingress --version 4.10.4 -f <PATH_TO_VALUES>
    
    • <RELEASE_NAME>: اسم إصدار Helm مع مخطط وحدة التحكم Ingress
    • <NAMESPACE>: النطاق الذي تم نشر وحدة التحكم Ingress به
    • <PATH_TO_VALUES>: المسار إلى ملف values.yaml الذي يعرف إعدادات وحدة التحكم Ingress 4.10 - يمكنك استخدام الواحد الذي تم إنشاؤه لتشغيل نسخة وحدة التحكم Ingress السابقة
  3. تأكد من عدم وجود تغييرات يمكن أن تؤثر على استقرار الخدمات الجارية وفحص الأخطاء من stdout بعناية.

    إذا كان stdout فارغًا، تأكد من صحة ملف values.yaml.

الخطوة 3: ترقية وحدة التحكم Ingress

قم بترقية وحدة التحكم NGINX Ingress المنشورة:

helm upgrade <RELEASE_NAME> -n <NAMESPACE> wallarm/wallarm-ingress --version 4.10.4 -f <PATH_TO_VALUES>
  • <RELEASE_NAME>: اسم إصدار Helm مع مخطط وحدة التحكم Ingress

  • <NAMESPACE>: النطاق الذي تم نشر وحدة التحكم Ingress به

  • <PATH_TO_VALUES>: المسار إلى ملف values.yaml الذي يعرف إعدادات وحدة التحكم Ingress 4.10 - يمكنك استخدام الواحد الذي تم إنشاؤه لتشغيل نسخة وحدة التحكم Ingress السابقة

الخطوة 4: اختبار وحدة التحكم Ingress المُرقاة

  1. تأكد من ترقية نسخة مخطط Helm:

    helm list -n <NAMESPACE>
    

    حيث <NAMESPACE> هو النطاق الذي تم نشر مخطط Helm مع وحدة التحكم Ingress به.

    يجب أن تتوافق نسخة المخطط مع wallarm-ingress-4.10.4.

  2. احصل على قائمة الحاويات:

    kubectl get pods -n <NAMESPACE> -l app.kubernetes.io/name=wallarm-ingress
    

    يجب أن تكون حالة كل حاوية STATUS: Running أو READY: N/N. على سبيل المثال:

    NAME                                                              READY     STATUS    RESTARTS   AGE
    ingress-controller-nginx-ingress-controller-675c68d46d-cfck8      3/3       Running   0          5m
    ingress-controller-nginx-ingress-controller-wallarm-tarantljj8g   4/4       Running   0          5m
    
  3. أرسل طلبًا مع هجوم اختبار Path Traversal إلى عنوان وحدة التحكم Ingress Wallarm:

    curl http://<INGRESS_CONTROLLER_IP>/etc/passwd
    

    تحقق من أن حل الإصدار الجديد يعالج الطلب الضار كما فعل في الإصدار السابق.