إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
باستخدام Kubernetes، يمكنك استخدام خدمات PaaS، مثل ناقل خدمة Azure، لتطوير تطبيقاتك وتشغيلها.
في هذا البرنامج التعليمي، يمكنك إنشاء مساحة اسم وقائمة انتظار ناقل خدمة Azure لاختبار التطبيق الخاص بك. ستتعلم كيفية:
- إنشاء مساحة اسم ناقل خدمة Azure وقائمة انتظار.
- قم بتحديث ملف بيان Kubernetes لاستخدام قائمة انتظار ناقل خدمة Azure.
- اختبر التطبيق المحدث عن طريق تقديم طلب.
قبل البدء
في البرامج التعليمية السابقة، قمت بحزم تطبيق في صورة حاوية، وتحميل الصورة إلى Azure Container Registry، وإنشاء مجموعة Kubernetes، ونشر تطبيق. لإكمال هذا البرنامج التعليمي، تحتاج إلى ملف بيان Kubernetes aks-store-quickstart.yamlالذي تم إنشاؤه مسبقاً. تم تضمين تنزيل الملف هذا مع التعليمات البرمجية المصدر للتطبيق في برنامج تعليمي سابق. تأكد من نسخ المستودع وتغيير الدلائل إلى المستودع المستنسخ. إذا لم تكن قد أكملت هذه الخطوات وتريد المتابعة، فابدأ بالبرنامج التعليمي 1 - إعداد التطبيق ل AKS.
- Azure CLI
- Azure PowerShell
يتطلب هذا البرنامج التعليمي الإصدار 2.34.1 من Azure CLI أو أحدث. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
إنشاء متغيرات البيئة
- Azure CLI
- Azure PowerShell
إنشاء متغيرات البيئة التالية لاستخدامها للأوامر في هذا البرنامج التعليمي:
LOC_NAME=westus2 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 CLI
- Azure PowerShell
إنشاء مساحة اسم ناقل خدمة 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احصل على بيانات اعتماد ناقل خدمة Microsoft Azure لاستخدامها لاحقا باستخدام أوامر
az servicebus namespace showaz 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
- Azure CLI
- Azure PowerShell
قم بتكوين
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 startupProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 20 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 3000 failureThreshold: 3 initialDelaySeconds: 3 periodSeconds: 5 livenessProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 3 periodSeconds: 3إشعار
إضافة المعلومات الحساسة مباشرة، مثل مفاتيح 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.