البرنامج التعليمي: تمكين الوظيفة الإضافية لوحدة تحكم الدخول لمجموعة AKS جديدة مع مثيل بوابة تطبيق جديد

يمكنك استخدام Azure CLI لتمكين الوظيفة الإضافية لوحدة تحكم دخول بوابة التطبيق (AGIC) لنظام مجموعة Azure Kubernetes Services (AKS) جديدة.

في هذا البرنامج التعليمي، ستقوم بإنشاء مجموعة AKS مع تمكين الوظيفة الإضافية AGIC. سيؤدي إنشاء نظام المجموعة تلقائيا إلى إنشاء مثيل بوابة تطبيق Azure لاستخدامه. ثم ستقوم بنشر نموذج تطبيق يستخدم الوظيفة الإضافية لعرض التطبيق من خلال بوابة التطبيق.

توفر الوظيفة الإضافية طريقة أسرع لنشر AGIC لمجموعة AKS الخاصة بك عن سابقاً من خلال Helm. كما أنه يوفر تجربة مُدارة بالكامل.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • قم بإنشاء مجموعة موارد.
  • قم بإنشاء مجموعة AKS جديدة مع تمكين الوظيفة الإضافية AGIC.
  • نشر تطبيق نموذج باستخدام AGIC للدخول على مجموعة AKS.
  • تحقق من إمكانية الوصول إلى التطبيق من خلال بوابة التطبيق.

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

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

إنشاء مجموعة موارد

في 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، فاستخدم أيا من هذه الطرق:

في المثال التالي، فسوف نشر 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 موجودة مع بوابة تطبيق موجودة، تقدم إلى البرنامج التعليمي التالي.