البرنامج التعليمي: تمكين الوظيفة الإضافية لوحدة تحكم الدخول لمجموعة AKS جديدة مع مثيل بوابة تطبيق جديد
يمكنك استخدام Azure CLI لتمكين الوظيفة الإضافية لوحدة تحكم دخول بوابة التطبيق (AGIC) لنظام مجموعة Azure Kubernetes Services (AKS) جديدة.
في هذا البرنامج التعليمي، ستقوم بإنشاء مجموعة AKS مع تمكين الوظيفة الإضافية AGIC. سيؤدي إنشاء نظام المجموعة تلقائيا إلى إنشاء مثيل بوابة تطبيق Azure لاستخدامه. ثم ستقوم بنشر نموذج تطبيق يستخدم الوظيفة الإضافية لعرض التطبيق من خلال بوابة التطبيق.
توفر الوظيفة الإضافية طريقة أسرع لنشر AGIC لمجموعة AKS الخاصة بك عن سابقاً من خلال Helm. كما أنه يوفر تجربة مُدارة بالكامل.
في هذا البرنامج التعليمي، تتعلم كيفية:
- قم بإنشاء مجموعة موارد.
- قم بإنشاء مجموعة AKS جديدة مع تمكين الوظيفة الإضافية AGIC.
- نشر تطبيق نموذج باستخدام AGIC للدخول على مجموعة AKS.
- تحقق من إمكانية الوصول إلى التطبيق من خلال بوابة التطبيق.
إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
إنشاء مجموعة موارد
في Azure، تقوم بتخصيص الموارد ذات الصلة لمجموعة موارد. أنشئ مجموعة موارد باستخدام az group create. ينشئ المثال التالي مجموعة موارد تسمى myResourceGroup في موقع شرق الولايات المتحدة (المنطقة):
az group create --name myResourceGroup --location eastus
انشر مجموعة AKS مع تمكين الوظيفة الإضافية
ستقوم الآن بنشر مجموعة AKS جديدة مع تمكين الوظيفة الإضافية AGIC. إذا لم توفر مثيل بوابة تطبيق موجود لاستخدامه في هذه العملية، فستقوم تلقائيا بإنشاء وإعداد مثيل بوابة تطبيق جديد لخدمة نسبة استخدام الشبكة إلى مجموعة AKS.
إشعار
تدعم الوظيفة الإضافية لوحدة تحكم دخول بوابة التطبيق وحدات SKU لبوابة التطبيق v2 فقط (قياسية و WAF)، وليس وحدات SKU لبوابة التطبيق v1. عند نشر مثيل بوابة تطبيق جديد من خلال الوظيفة الإضافية AGIC، يمكنك نشر بوابة تطبيق فقط Standard_v2 SKU. إذا كنت تريد تمكين الوظيفة الإضافية لبوابة تطبيق WAF_v2 SKU، فاستخدم أيا من هذه الطرق:
- تمكين WAF على بوابة التطبيق من خلال المدخل.
- قم بإنشاء مثيل بوابة التطبيق WAF_v2 أولا، ثم اتبع الإرشادات حول كيفية تمكين الوظيفة الإضافية AGIC مع نظام مجموعة AKS موجود ومثيل بوابة التطبيق الحالي.
في المثال التالي، فسوف نشر AKS جديدة كتلة المسمى myCluster باستخدام Azure CNI والهويات المدارة. سيتم تمكين AGIC الإضافية في مجموعة المورد الذي قمت بإنشائه، myResourceGroup.
سيؤدي نشر نظام مجموعة AKS جديد مع تمكين الوظيفة الإضافية AGIC دون تحديد مثيل بوابة تطبيق موجود تلقائيا إلى إنشاء مثيل بوابة تطبيق SKU Standard_v2. ستحتاج إلى تحديد اسم ومساحة عنوان الشبكة الفرعية لمثيل بوابة التطبيق الجديد. يجب أن تكون مساحة العنوان من بادئة 10.224.0.0/12 التي تستخدمها شبكة AKS الظاهرية دون تداخل مع بادئة 10.224.0.0/16 المستخدمة من قبل الشبكة الفرعية AKS. في هذا البرنامج التعليمي، استخدم myApplicationGateway لاسم بوابة التطبيق و10.225.0.0 /16 لمساحة عنوان الشبكة الفرعية الخاصة به.
az aks create -n myCluster -g myResourceGroup --network-plugin azure --enable-managed-identity -a ingress-appgw --appgw-name myApplicationGateway --appgw-subnet-cidr "10.225.0.0/16" --generate-ssh-keys
إشعار
يرجى التأكد من أن الهوية المستخدمة من قبل AGIC لديها إذن Microsoft.Network/virtualNetworks/subnets/join/action المفوض إلى بوابة تطبيق الشبكة الفرعية التي تم نشرها فيها. إذا لم يتم تعريف دور مخصص بهذا الإذن، يمكنك استخدام دور مساهم الشبكة المضمن، والذي يحتوي على إذن Microsoft.Network/virtualNetworks/subnets/join/action.
# Get application gateway id from AKS addon profile
appGatewayId=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "addonProfiles.ingressApplicationGateway.config.effectiveApplicationGatewayId")
# Get Application Gateway subnet id
appGatewaySubnetId=$(az network application-gateway show --ids $appGatewayId -o tsv --query "gatewayIPConfigurations[0].subnet.id")
# Get AGIC addon identity
agicAddonIdentity=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "addonProfiles.ingressApplicationGateway.identity.clientId")
# Assign network contributor role to AGIC addon identity to subnet that contains the Application Gateway
az role assignment create --assignee $agicAddonIdentity --scope $appGatewaySubnetId --role "Network Contributor"
لتكوين المزيد من المعلمات للأمر أعلاه، راجع az aks create.
إشعار
وAKS تتجمع الذي قمت بإنشائه سوف تظهر في مجموعة المورد الذي قمت بإنشائه، myResourceGroup. ومع ذلك، سيكون مثيل بوابة التطبيق الذي تم إنشاؤه تلقائيا في مجموعة موارد العقدة، حيث توجد تجمعات الوكلاء. تسمى مجموعة موارد العقدة MC_resource-group-name_cluster-name_location بشكل افتراضي، ولكن يمكن تعديلها.
نشر تطبيق نموذج باستخدام AGIC
ستقوم الآن بنشر تطبيق نموذجي على مجموعة AKS التي قمت بإنشائها. سيستخدم التطبيق الوظيفة الإضافية AGIC للدخول وتوصيل مثيل بوابة التطبيق بمجموعة AKS.
أولاً، الحصول على أوراق الاعتماد إلى AKS تتجمع عن طريق تشغيل az aks get-credentials
الأوامر:
az aks get-credentials -n myCluster -g myResourceGroup
الآن بعد أن أصبحت لديك بيانات اعتماد، قم بتشغيل الأمر التالي لإعداد نموذج تطبيق يستخدم AGIC للدخول إلى الكتلة. ستقوم AGIC بتحديث مثيل بوابة التطبيق الذي قمت بإعداده مسبقا بقواعد التوجيه المقابلة إلى نموذج التطبيق الذي تقوم بنشره.
kubectl apply -f https://raw.githubusercontent.com/Azure/application-gateway-kubernetes-ingress/master/docs/examples/aspnetapp.yaml
تأكد من إمكانية الوصول إلى التطبيق
الآن بعد أن تم إعداد مثيل بوابة التطبيق لخدمة نسبة استخدام الشبكة إلى مجموعة AKS، دعنا نتحقق من إمكانية الوصول إلى التطبيق الخاص بك. أولاً، احصل على عنوان IP الخاص بالدخول:
kubectl get ingress
تحقق من أن التطبيق النموذجي الذي قمت بإنشائه يعمل إما عن طريق:
- زيارة عنوان IP لمثيل بوابة التطبيق الذي حصلت عليه من تشغيل الأمر السابق.
- باستخدام
curl
.
قد تستغرق بوابة التطبيق دقيقة للحصول على التحديث. إذا كانت بوابة التطبيق لا تزال في حالة تحديث على المدخل، فاتركها تنتهي قبل محاولة الوصول إلى عنوان IP.
تنظيف الموارد
عندما لم تعد بحاجة إليها، احذف جميع الموارد التي تم إنشاؤها في هذا البرنامج التعليمي عن طريق حذف myResourceGroup ومجموعات الموارد MC_myResourceGroup_myCluster_eastus :
az group delete --name myResourceGroup
az group delete --name MC_myResourceGroup_myCluster_eastus
الخطوات التالية
في هذا البرنامج التعليمي، سوف تتعلّم:
- إنشاء مجموعة AKS جديدة مع تمكين الوظيفة الإضافية AGIC
- نشر نموذج تطبيق باستخدام AGIC للدخول على نظام مجموعة AKS
لمعرفة المزيد حول AGIC، راجع ما هي وحدة تحكم دخول بوابة التطبيق وتعطيل الوظيفة الإضافية AGIC وإعادة تمكينها لمجموعة AKS الخاصة بك.
لمعرفة كيفية تمكين الوظيفة الإضافية لوحدة تحكم دخول بوابة التطبيق لمجموعة AKS موجودة مع بوابة تطبيق موجودة، تقدم إلى البرنامج التعليمي التالي.