البرنامج التعليمي - استخدام خدمات PaaS مع نظام مجموعة Azure Kubernetes Service (AKS)
باستخدام Kubernetes، يمكنك استخدام خدمات PaaS، مثل ناقل خدمة Azure، لتطوير تطبيقاتك وتشغيلها.
في هذا البرنامج التعليمي، الجزء الخامس من سبعة، يمكنك إنشاء مساحة اسم ناقل خدمة Azure وقائمة انتظار لاختبار التطبيق الخاص بك. ستتعلم كيفية:
- إنشاء مساحة اسم ناقل خدمة Azure وقائمة انتظار.
- قم بتحديث ملف بيان Kubernetes لاستخدام قائمة انتظار ناقل خدمة Azure.
- اختبر التطبيق المحدث عن طريق تقديم طلب.
قبل البدء
في البرامج التعليمية السابقة، قمت بحزم تطبيق في صورة حاوية، وتحميل الصورة إلى Azure Container Registry، وإنشاء مجموعة Kubernetes، ونشر تطبيق. لإكمال هذا البرنامج التعليمي، تحتاج إلى ملف بيان Kubernetes aks-store-quickstart.yaml
الذي تم إنشاؤه مسبقاً. تم تضمين تنزيل الملف هذا مع التعليمات البرمجية المصدر للتطبيق في برنامج تعليمي سابق. تأكد من نسخ المستودع وتغيير الدلائل إلى المستودع المستنسخ. إذا لم تكن قد أكملت هذه الخطوات وتريد المتابعة، فابدأ بالبرنامج التعليمي 1 - إعداد التطبيق ل AKS.
يتطلب هذا البرنامج التعليمي الإصدار 2.34.1 من Azure CLI أو أحدث. قم بتشغيل az --version
للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
إنشاء متغيرات البيئة
إنشاء متغيرات البيئة التالية لاستخدامها للأوامر في هذا البرنامج التعليمي:
LOC_NAME=eastus RAND=$RANDOM RG_NAME=myResourceGroup AKS_NAME=myAKSCluster SB_NS=sb-store-demo-$RAND
إنشاء مساحة اسم وقائمة انتظار ناقل خدمة Azure
في البرامج التعليمية السابقة، استخدمت حاوية RabbitMQ لتخزين الطلبات المقدمة order-service
من . في هذا البرنامج التعليمي، يمكنك استخدام مساحة اسم ناقل خدمة Azure لتوفير حاوية تحديد النطاق لموارد ناقل خدمة Microsoft Azure داخل التطبيق. يمكنك أيضا استخدام قائمة انتظار ناقل خدمة Azure لإرسال واستقبال الرسائل بين مكونات التطبيق. لمزيد من المعلومات حول ناقل خدمة Azure، راجع إنشاء مساحة اسم ناقل خدمة Azure وقائمة انتظار.
إنشاء مساحة اسم ناقل خدمة Azure باستخدام
az servicebus namespace create
الأمر .az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
إنشاء قائمة انتظار ناقل خدمة Azure باستخدام
az servicebus queue create
الأمر .az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NS
إنشاء قاعدة تخويل ناقل خدمة Azure باستخدام
az servicebus queue authorization-rule create
الأمر .az servicebus queue authorization-rule create \ --name sender \ --namespace-name $SB_NS \ --resource-group $RG_NAME \ --queue-name orders \ --rights Send
احصل على بيانات اعتماد ناقل خدمة Azure لاستخدامها لاحقا باستخدام
az servicebus namespace show
الأمرين وaz servicebus queue authorization-rule keys list
.az servicebus namespace show --name $SB_NS --resource-group $RG_NAME --query name -o tsv az servicebus queue authorization-rule keys list --namespace-name $SB_NS --resource-group $RG_NAME --queue-name orders --name sender --query primaryKey -o tsv
تحديث ملف بيان Kubernetes
قم بتكوين
kubectl
للاتصال بالمجموعة باستخدامaz aks get-credentials
الأمر .az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
افتح الملف
aks-store-quickstart.yaml
باستخدام محرر نص كما يلي:أزل أقسام StatefulSet وConfigMap وService الموجودة
rabbitmq
واستبدل قسم التوزيع الموجودorder-service
بالمحتوى التالي:apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: <REPLACE_WITH_YOUR_ACR_NAME>.azurecr.io/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>" # Example: sb-store-demo-123456.servicebus.windows.net - name: ORDER_QUEUE_PORT value: "5671" - name: ORDER_QUEUE_TRANSPORT value: "tls" - name: ORDER_QUEUE_USERNAME value: "sender" - name: ORDER_QUEUE_PASSWORD value: "<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi
إشعار
إضافة المعلومات الحساسة مباشرة، مثل مفاتيح API، إلى ملفات بيان Kubernetes الخاصة بك غير آمنة وقد يتم الالتزام بها عن طريق الخطأ في مستودعات التعليمات البرمجية. أضفناه هنا للتبسيط. بالنسبة لأحمال عمل الإنتاج، استخدم الهوية المدارة للمصادقة مع ناقل خدمة Azure أو تخزين أسرارك في Azure Key Vault.
احفظ الملف المحدث وأغلقه
aks-store-quickstart.yaml
.
نشر التطبيق المحدّث
نشر التطبيق المحدث باستخدام
kubectl apply
الأمر .kubectl apply -f aks-store-quickstart.yaml
يظهر إخراج المثال التالي الموارد التي تم تحديثها بنجاح:
deployment.apps/order-service configured service/order-service unchanged deployment.apps/product-service unchanged service/product-service unchanged deployment.apps/store-front configured service/store-front unchanged
اختبر التطبيق
وضع طلب عينة
احصل على عنوان IP الخارجي للخدمة
store-front
باستخدامkubectl get service
الأمر .kubectl get service store-front
انتقل إلى عنوان IP الخارجي للخدمة
store-front
في المستعرض باستخدامhttp://<external-ip>
.قم بوضع طلب عن طريق اختيار منتج وتحديد إضافة إلى عربة التسوق.
حدد Cart لعرض طلبك، ثم حدد Checkout.
عرض الترتيب في قائمة انتظار ناقل خدمة Azure
- انتقل إلى مدخل Microsoft Azure وافتح مساحة الاسم ناقل خدمة Azure التي أنشأتها سابقا.
- ضمن Entities، حدد Queues، ثم حدد قائمة انتظار الطلبات .
- في قائمة انتظار الطلبات ، حدد Service Bus Explorer.
- حدد نظرة خاطفة من البداية لعرض الطلب الذي أرسلته.
الخطوات التالية
في هذا البرنامج التعليمي، استخدمت ناقل خدمة Azure لتحديث نموذج التطبيق واختباره. لقد تعرفت على كيفية:
- إنشاء مساحة اسم ناقل خدمة Azure وقائمة انتظار.
- قم بتحديث ملف بيان Kubernetes لاستخدام قائمة انتظار ناقل خدمة Azure.
- اختبر التطبيق المحدث عن طريق تقديم طلب.
في البرنامج التعليمي التالي، ستتعلم كيفية توسيع نطاق تطبيق في AKS.
Azure Kubernetes Service