مشاركة عبر


الترحيل من توجيه تطبيق HTTP إلى الوظيفة الإضافية لتوجيه التطبيق

في هذه المقالة، ستتعلم كيفية ترحيل نظام مجموعة Azure Kubernetes Service (AKS) من ميزة توجيه تطبيق HTTP إلى الوظيفة الإضافية لتوجيه التطبيق. تم إيقاف الوظيفة الإضافية لتوجيه تطبيق HTTP ولا تعمل على أي إصدار من إصدارات Kubernetes لنظام المجموعة قيد الدعم حاليا. نوصي بالترحيل في أقرب وقت ممكن للحفاظ على تكوين مدعوم.

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

  • تم تثبيت الإصدار 2.54.0 من Azure CLI أو إصدار أحدث وتكوينه. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
  • aks-preview ملحق Azure CLI للإصدار 0.5.171 أو أحدث مثبت

إشعار

تفصل هذه الخطوات الترحيل من تكوين غير مدعوم. على هذا النحو، لا يمكن ل AKS تقديم الدعم للمشكلات التي تنشأ أثناء عملية الترحيل.

تحديث الوظائف الإضافية لنظام المجموعة والدخول واستخدام IP

  1. تمكين الوظيفة الإضافية لتوجيه التطبيق.

    az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
    
  2. قم بتحديث الدخول الخاصة بك، وإعداد ingressClassName إلى webapprouting.kubernetes.azure.com. إزالة التعليق kubernetes.io/ingress.class التوضيحي. تحتاج أيضا إلى تحديث المضيف إلى المضيف الذي تملكه، حيث لا تحتوي الوظيفة الإضافية لتوجيه التطبيق على منطقة DNS لنظام المجموعة المدارة. إذا لم يكن لديك منطقة DNS، فاتبع الإرشادات لإنشاء منطقة وتكوينها.

    في البداية، سيبدو تكوين الدخول الخاص بك كما يلي:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: aks-helloworld
      annotations:
        kubernetes.io/ingress.class: addon-http-application-routing  # Remove the ingress class annotation
    spec:
      rules:
      - host: aks-helloworld.<CLUSTER_SPECIFIC_DNS_ZONE>
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: aks-helloworld
                port:
                  number: 80
    

    بعد التحديث بشكل صحيح، يبدو نفس التكوين كما يلي:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: aks-helloworld
    spec:
      ingressClassName: webapprouting.kubernetes.azure.com # Set the ingress class property to refer to the application routing add-on ingress class
      rules:
      - host: aks-helloworld.<CLUSTER_SPECIFIC_DNS_ZONE> # Replace with your own hostname
        http: 
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: aks-helloworld
                port:
                  number: 80
    
  3. تحديث IP لوحدة تحكم الدخول (كما هو الحال في سجلات DNS) بعنوان IP الجديد. يمكنك العثور على IP الجديد باستخدام kubectl get. على سبيل المثال:

    kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    
  4. تعطيل الوظيفة الإضافية لتوجيه تطبيق HTTP.

    az aks disable-addons --resource-group <ResourceGroupName> --name <ClusterName> --addons http_application_routing
    

إزالة كافة موارد توجيه تطبيق HTTP وحذفها

  1. بعد تعطيل الوظيفة الإضافية لتوجيه تطبيق HTTP، قد تظل بعض موارد Kubernetes ذات الصلة في مجموعتك. تتضمن هذه الموارد التكوينات والأسرار التي تم إنشاؤها في مساحة اسم نظام kube. للحفاظ على نظام مجموعة نظيف، يمكنك إزالة هذه الموارد. ابحث عن موارد addon-http-application-routing باستخدام الأوامر التالية kubectl get :

    kubectl get deployments --namespace kube-system
    kubectl get services --namespace kube-system
    kubectl get configmaps --namespace kube-system
    kubectl get secrets --namespace kube-system
    

    يظهر إخراج المثال التالي configmaps التي يجب حذفها:

    NAMESPACE     NAME                                                       DATA   AGE
    kube-system   addon-http-application-routing-nginx-configuration         0      9m7s
    kube-system   addon-http-application-routing-tcp-services                0      9m7s
    kube-system   addon-http-application-routing-udp-services                0      9m7s
    
  2. احذف الموارد المتبقية kubectl delete باستخدام الأمر . تأكد من تحديد نوع المورد واسم المورد ومساحة الاسم. المثال التالي يحذف إحدى خرائط التكوين السابقة:

    kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
    
  3. كرر الخطوة السابقة kubectl delete لجميع موارد addon-http-application-routing المتبقية في نظام المجموعة.

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

بعد الترحيل إلى الوظيفة الإضافية لتوجيه التطبيق، تعرف على كيفية مراقبة مقاييس وحدة تحكم الدخول باستخدام Prometheus وGrafana.