البرنامج التعليمي - نشر تطبيق إلى خدمة Azure Kubernetes (AKS)
يُقدم Kubernetes نظاماً أساسياً موزعاً للتطبيقات المعبأة في حاويات. يمكنك إنشاء ونشر التطبيقات والخدمات الخاصة بك في مجموعة Kubernetes والسماح للمجموعة بإدارة التوفر والاتصال.
في هذا البرنامج التعليمي، الجزء الرابع من سبعة، يمكنك نشر نموذج تطبيق في مجموعة Kubernetes. ستتعلم كيفية:
- تحديث ملف بيان Kubernetes.
- تشغيل تطبيق في Kubernetes.
- اختبار التطبيق.
تلميح
باستخدام AKS، يمكنك استخدام الأساليب التالية لإدارة التكوين:
GitOps: تمكين إعلانات حالة نظام المجموعة لتطبيقها تلقائيا على نظام المجموعة. لمعرفة كيفية استخدام GitOps لنشر تطبيق مع مجموعة AKS، راجع المتطلبات الأساسية لمجموعات خدمة Azure Kubernetes في البرنامج التعليمي GitOps مع Flux v2 .
DevOps: يمكنك من إنشاء واختبار ونشر مع التكامل المستمر (CI) والتسليم المستمر (CD). للاطلاع على أمثلة حول كيفية استخدام DevOps لنشر تطبيق مع نظام مجموعة AKS، راجع الإنشاء والتوزيع إلى AKS باستخدام Azure Pipelines أو GitHub Actions للنشر في Kubernetes.
قبل البدء
في البرامج التعليمية السابقة، قمت بحزم تطبيق في صورة حاوية، وتحميل الصورة إلى Azure Container Registry، وإنشاء مجموعة Kubernetes. لإكمال هذا البرنامج التعليمي، تحتاج إلى ملف بيان Kubernetes الذي تم aks-store-quickstart.yaml
إنشاؤه مسبقا. تم تنزيل هذا الملف في التعليمات البرمجية المصدر للتطبيق من البرنامج التعليمي 1 - إعداد التطبيق ل AKS.
يتطلب هذا البرنامج التعليمي الإصدار 2.0.53 من Azure CLI أو أحدث. تحقق من الإصدار الخاص بك باستخدام az --version
. للتثبيت أو الترقية، يُرجى الرجوع إلى تثبيت Azure CLI.
تحديث ملف البيان
في هذه البرامج التعليمية، يخزن مثيل Azure Container Registry (ACR) صور الحاوية لنموذج التطبيق. لنشر التطبيق، يجب تحديث أسماء الصور في ملف بيان Kubernetes لتضمين اسم خادم تسجيل الدخول إلى ACR.
احصل على عنوان خادم تسجيل الدخول باستخدام
az acr list
الأمر والاستعلام لخادم تسجيل الدخول.az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
تأكد من أنك في دليل aks-store-demo المستنسخ، ثم افتح
aks-store-quickstart.yaml
ملف البيان باستخدام محرر نص.قم بتحديث الخاصية
image
للحاويات عن طريق استبدال ghcr.io/azure-samples باسم خادم تسجيل الدخول ACR الخاص بك.containers: ... - name: order-service image: <acrName>.azurecr.io/aks-store-demo/order-service:latest ... - name: product-service image: <acrName>.azurecr.io/aks-store-demo/product-service:latest ... - name: store-front image: <acrName>.azurecr.io/aks-store-demo/store-front:latest ...
احفظ الملف وأغلقه.
شغّل التطبيق
نشر التطبيق باستخدام
kubectl apply
الأمر الذي يوزع ملف البيان وينشئ كائنات Kubernetes المعرفة.kubectl apply -f aks-store-quickstart.yaml
يظهر المثال التالي للناتج الموارد التي تم إنشاؤها بنجاح في مجموعة AKS:
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
تحقق من نجاح النشر عن طريق عرض pods باستخدام
kubectl get pods
الأمر .kubectl get pods
اختبر التطبيق
عند تشغيل التطبيق، تعرض خدمة Kubernetes واجهة التطبيق الأمامية للإنترنت. قد تستغرق هذه العملية بضع دقائق حتى تكتمل.
سطر الأوامر
راقب التقدم باستخدام الأمر
kubectl get service
مع الوسيطة--watch
.kubectl get service store-front --watch
في البداية،
EXTERNAL-IP
يظهر للخدمةstore-front
على النحو<pending>
التالي:store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
EXTERNAL-IP
عندما يتغير العنوان من<pending>
إلى عنوان IP عام، استخدمCTRL-C
لإيقافkubectl
عملية المراقبة.يوضح المثال التالي إخراج لعنوان IP عام صالحاً تم تعيينه للخدمة:
store-front LoadBalancer 10.0.34.242 52.179.23.131 80:30676/TCP 67s
اعرض التطبيق أثناء العمل عن طريق فتح مستعرض ويب والانتقال إلى عنوان IP الخارجي للخدمة الخاصة بك:
http://<external-ip>
.
إذا لم يتم تحميل التطبيق، فقد تكون مشكلة تخويل في سجل الصور. لعرض حالة الحاويات الخاصة بك، استخدم kubectl get pods
الأمر. إذا لم تتمكن من سحب صور الحاوية، فشاهد المصادقة باستخدام Azure Container Registry من Azure Kubernetes Service.
مدخل Azure
انتقل إلى مدخل Microsoft Azure للعثور على معلومات النشر الخاصة بك.
انتقل إلى مورد نظام مجموعة AKS الخاص بك.
من قائمة الخدمة، ضمن موارد Kubernetes، حدد الخدمات والدخول.
انسخ عنوان IP الخارجي الموضح في عمود
store-front
الخدمة.الصق عنوان IP في المستعرض لزيارة صفحة المتجر.
تنظيف الموارد
نظرا لأنك تحققت من صحة وظيفة التطبيق، يمكنك الآن إزالة نظام المجموعة من التطبيق. سننشر التطبيق مرة أخرى في البرنامج التعليمي التالي.
قم بإيقاف وإزالة مثيلات الحاوية والموارد باستخدام
kubectl delete
الأمر .kubectl delete -f aks-store-quickstart.yaml
تحقق من إزالة جميع pods التطبيق باستخدام
kubectl get pods
الأمر .kubectl get pods
الخطوات التالية
في هذا البرنامج التعليمي، قمت بنشر نموذج تطبيق Azure إلى مجموعة Kubernetes في AKS. لقد تعرفت على كيفية:
- تحديث ملف بيان Kubernetes.
- تشغيل تطبيق في Kubernetes.
- اختبار التطبيق.
في البرنامج التعليمي التالي، ستتعلم كيفية استخدام خدمات PaaS لأحمال العمل ذات الحالة في Kubernetes.
Azure Kubernetes Service