مشاركة عبر


دخول NGINX المدار مع الوظيفة الإضافية لتوجيه التطبيق

تتمثل إحدى الطرق لتوجيه بروتوكول نقل النص التشعبي (HTTP) وحركة مرور آمنة (HTTPS) إلى التطبيقات التي تعمل على مجموعة Azure Kubernetes Service (AKS) في استخدام كائن Kubernetes Ingress. عند إنشاء كائن دخول يستخدم فئة NGINX Ingress الإضافية لتوجيه التطبيق، تقوم الوظيفة الإضافية بإنشاء وحدة تحكم دخول واحدة أو أكثر وتكوينها وإدارتها في نظام مجموعة AKS.

توضح لك هذه المقالة كيفية نشر وتكوين وحدة تحكم دخول أساسية في نظام مجموعة AKS.

الوظيفة الإضافية لتوجيه التطبيق مع ميزات NGINX

تقدم الوظيفة الإضافية لتوجيه التطبيق مع NGINX ما يلي:

  • تكوين سهل لوحدات تحكم دخول NGINX المدارة استنادا إلى وحدة تحكم دخول Kubernetes NGINX.
  • التكامل مع Azure DNS لإدارة المنطقة العامة والخاصة
  • إنهاء SSL مع الشهادات المخزنة في Azure Key Vault.

للحصول على تكوينات أخرى، راجع:

مع إيقاف Open Service Mesh (OSM) من قبل Cloud Native Computing Foundation (CNCF)، لا يوصى باستخدام الوظيفة الإضافية لتوجيه التطبيق مع OSM.

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

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

القيود

  • تدعم الوظيفة الإضافية لتوجيه التطبيق ما يصل إلى خمس مناطق Azure DNS.
  • يمكن تمكين الوظيفة الإضافية لتوجيه التطبيق فقط على مجموعات AKS ذات الهوية المدارة.
  • يجب أن تكون جميع مناطق Azure DNS العمومية المدمجة مع الوظيفة الإضافية في نفس مجموعة الموارد.
  • يجب أن تكون جميع مناطق Azure DNS الخاصة المدمجة مع الوظيفة الإضافية في نفس مجموعة الموارد.
  • تحرير ingress-nginx ConfigMap في app-routing-system مساحة الاسم غير مدعوم.
  • يتم حظر التعليقات التوضيحية للمقتطف التالية وستمنع تكوين الدخول: load_module، ، lua_package، _by_lua، locationroot، proxy_pass، serviceaccount، {، . '}

تمكين توجيه التطبيق باستخدام Azure CLI

تمكين على نظام مجموعة جديد

لتمكين توجيه التطبيق على نظام مجموعة جديد، استخدم az aks create الأمر ، مع تحديد العلامة --enable-app-routing .

az aks create \
    --resource-group <ResourceGroupName> \
    --name <ClusterName> \
    --location <Location> \
    --enable-app-routing \
    --generate-ssh-keys

تمكين على نظام مجموعة موجود

لتمكين توجيه التطبيق على مجموعة موجودة، استخدم az aks approuting enable الأمر .

az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>

قم بالاتصال بمجموعة AKS

للاتصال بمجموعة Kubernetes من جهاز الكمبيوتر المحلي لديك، يمكنك استخدام kubectl، عميل معني بأوامر Kubernetes. يمكنك تثبيته محليا باستخدام az aks install-cli الأمر . في حال كنت تستخدم Azure Cloud Shell، يكون kubectl مثبتاً بالفعل.

قم بتكوين kubectl للاتصال بكتلة Kubernetes مستخدماً الأمر az aks get-credentials.

az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>

نشر تطبيق

تستخدم الوظيفة الإضافية لتوجيه التطبيق تعليقات توضيحية على كائنات دخول Kubernetes لإنشاء الموارد المناسبة.

  1. قم بإنشاء مساحة اسم التطبيق التي تم استدعاؤها aks-store لتشغيل أمثلة pods باستخدام kubectl create namespace الأمر .

    kubectl create namespace aks-store
    
  2. انشر تطبيق مخزن AKS باستخدام ملف بيان YAML التالي:

    kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/sample-manifests/docs/app-routing/aks-store-deployments-and-services.yaml -n aks-store
    

سيقوم هذا البيان بإنشاء عمليات النشر والخدمات الضرورية لتطبيق مخزن AKS.

إنشاء كائن الدخول

تنشئ الوظيفة الإضافية لتوجيه التطبيق فئة دخول على المجموعة المسماة webapprouting.kubernetes.azure.com. عند إنشاء كائن دخول باستخدام هذه الفئة، فإنه يقوم بتنشيط الوظيفة الإضافية.

  1. انسخ بيان YAML التالي في ملف جديد يسمى ingress.yaml واحفظ الملف إلى الكمبيوتر المحلي.

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: store-front
      namespace: aks-store
    spec:
      ingressClassName: webapprouting.kubernetes.azure.com
      rules:
      - http:
          paths:
          - backend:
              service:
                name: store-front
                port:
                  number: 80
            path: /
            pathType: Prefix
    
  2. إنشاء مورد الدخول باستخدام الأمر kubectl apply.

    kubectl apply -f ingress.yaml -n aks-store
    

    يظهر إخراج المثال التالي المورد الذي تم إنشاؤه:

    ingress.networking.k8s.io/store-front created
    

تحقق من إنشاء الدخول المدار

يمكنك التحقق من إنشاء الدخول المدار باستخدام kubectl get ingress الأمر .

kubectl get ingress -n aks-store

يظهر إخراج المثال التالي الدخول المدار الذي تم إنشاؤه:

NAME          CLASS                                HOSTS   ADDRESS       PORTS   AGE
store-front   webapprouting.kubernetes.azure.com   *       51.8.10.109   80      110s

يمكنك التحقق من أن مخزن AKS يعمل على توجيه المتصفح إلى عنوان IP العام لوحدة تحكم الدخول. ابحث عن عنوان IP باستخدام kubectl:

kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"

إزالة الوظيفة الإضافية لتوجيه التطبيق

لإزالة مساحة الاسم المقترنة kubectl delete namespace ، استخدم الأمر .

kubectl delete namespace aks-store

لإزالة الوظيفة الإضافية لتوجيه التطبيق من نظام المجموعة، استخدم az aks approuting disable الأمر .

az aks approuting disable --name <ClusterName> --resource-group <ResourceGroupName>

إشعار

لتجنب التعطيل المحتمل لنسبة استخدام الشبكة في نظام المجموعة عند تعطيل الوظيفة الإضافية لتوجيه التطبيق، ستظل بعض موارد Kubernetes، بما في ذلك configMaps والأسرار والنشر الذي يقوم بتشغيل وحدة التحكم، على نظام المجموعة. توجد هذه الموارد في مساحة اسم نظام توجيه التطبيق. يمكنك إزالة هذه الموارد إذا لم تعد هناك حاجة إليها عن طريق حذف مساحة الاسم باستخدام kubectl delete ns app-routing-system.

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