دخول NGINX المدار مع الوظيفة الإضافية لتوجيه التطبيق
تتمثل إحدى الطرق لتوجيه بروتوكول نقل النص التشعبي (HTTP) وحركة مرور آمنة (HTTPS) إلى التطبيقات التي تعمل على مجموعة Azure Kubernetes Service (AKS) في استخدام كائن Kubernetes Ingress. عند إنشاء كائن دخول يستخدم فئة NGINX Ingress الإضافية لتوجيه التطبيق، تقوم الوظيفة الإضافية بإنشاء وحدة تحكم دخول واحدة أو أكثر وتكوينها وإدارتها في نظام مجموعة AKS.
توضح لك هذه المقالة كيفية نشر وتكوين وحدة تحكم دخول أساسية في نظام مجموعة AKS.
الوظيفة الإضافية لتوجيه التطبيق مع ميزات NGINX
تقدم الوظيفة الإضافية لتوجيه التطبيق مع NGINX ما يلي:
- تكوين سهل لوحدات تحكم دخول NGINX المدارة استنادا إلى وحدة تحكم دخول Kubernetes NGINX.
- التكامل مع Azure DNS لإدارة المنطقة العامة والخاصة
- إنهاء SSL مع الشهادات المخزنة في Azure Key Vault.
للحصول على تكوينات أخرى، راجع:
- تكوين DNS وSSL
- تكوين الوظيفة الإضافية لتوجيه التطبيق
- تكوين وحدة تحكم دخول NGIX الداخلية لمنطقة DNS الخاصة ب Azure.
مع إيقاف 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
،location
root
،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 لإنشاء الموارد المناسبة.
قم بإنشاء مساحة اسم التطبيق التي تم استدعاؤها
aks-store
لتشغيل أمثلة pods باستخدامkubectl create namespace
الأمر .kubectl create namespace aks-store
انشر تطبيق مخزن 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. عند إنشاء كائن دخول باستخدام هذه الفئة، فإنه يقوم بتنشيط الوظيفة الإضافية.
انسخ بيان 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
إنشاء مورد الدخول باستخدام الأمر
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
.
الخطوات التالية
يوضح تكوين تكوينات الدخول المخصصة كيفية إنشاء تكوين دخول متقدم وتكوين مجال مخصص باستخدام Azure DNS لإدارة مناطق DNS وإعداد دخول آمن.
للتكامل مع موازن تحميل داخلي Azure وتكوين منطقة Azure DNS خاصة لتمكين دقة DNS لنقاط النهاية الخاصة لحل مجالات معينة، راجع تكوين وحدة تحكم دخول NGINX الداخلية لمنطقة DNS الخاصة ب Azure.
تعرف على مراقبة مقاييس وحدة تحكم ingress-nginx المضمنة مع الوظيفة الإضافية لتوجيه التطبيق باستخدام Prometheus في Grafana (معاينة) كجزء من تحليل أداء التطبيق واستخدامه.
Azure Kubernetes Service