دخول 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.
  • aks-preview ملحق Azure CLI للإصدار 0.5.171 أو أحدث مثبت

القيود

  • تدعم الوظيفة الإضافية لتوجيه التطبيق ما يصل إلى خمس مناطق Azure DNS.
  • يجب أن تكون جميع مناطق 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

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

لتمكين توجيه التطبيق على مجموعة موجودة، استخدم 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. قم بإنشاء مساحة اسم التطبيق التي تم استدعاؤها hello-web-app-routing لتشغيل أمثلة pods باستخدام kubectl create namespace الأمر .

    kubectl create namespace hello-web-app-routing
    
  2. قم بإنشاء النشر عن طريق نسخ بيان YAML التالي في ملف جديد يسمى deployment.yaml وحفظ الملف إلى الكمبيوتر المحلي.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: aks-helloworld  
      namespace: hello-web-app-routing
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: aks-helloworld
      template:
        metadata:
          labels:
            app: aks-helloworld
        spec:
          containers:
          - name: aks-helloworld
            image: mcr.microsoft.com/azuredocs/aks-helloworld:v1
            ports:
            - containerPort: 80
            env:
            - name: TITLE
              value: "Welcome to Azure Kubernetes Service (AKS)"
    
  3. أنشئ الخدمة عن طريق نسخ بيان YAML التالي إلى ملف جديد يسمى service.yaml واحفظ الملف على الكمبيوتر المحلي.

    apiVersion: v1
    kind: Service
    metadata:
      name: aks-helloworld
      namespace: hello-web-app-routing
    spec:
      type: ClusterIP
      ports:
      - port: 80
      selector:
        app: aks-helloworld
    

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

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

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

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: aks-helloworld
      namespace: hello-web-app-routing
    spec:
      ingressClassName: webapprouting.kubernetes.azure.com
      rules:
      - host: <Hostname>
        http:
          paths:
          - backend:
              service:
                name: aks-helloworld
                port:
                  number: 80
            path: /
            pathType: Prefix
    
  2. إنشاء موارد نظام المجموعة باستخدام kubectl apply الأمر .

    kubectl apply -f deployment.yaml -n hello-web-app-routing
    

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

    deployment.apps/aks-helloworld created
    
    kubectl apply -f service.yaml -n hello-web-app-routing
    

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

    service/aks-helloworld created
    
    kubectl apply -f ingress.yaml -n hello-web-app-routing
    

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

    ingress.networking.k8s.io/aks-helloworld created
    

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

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

kubectl get ingress -n hello-web-app-routing

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

NAME             CLASS                                HOSTS               ADDRESS       PORTS     AGE
aks-helloworld   webapprouting.kubernetes.azure.com   myapp.contoso.com   20.51.92.19   80, 443   4m

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

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

kubectl delete namespace hello-web-app-routing

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

az aks approuting disable --name myAKSCluster --resource-group myResourceGroup 

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

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