البرنامج التعليمي - استخدام خدمات 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 وقائمة انتظار.

  1. إنشاء مساحة اسم ناقل خدمة Azure باستخدام az servicebus namespace create الأمر .

    az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
    
  2. إنشاء قائمة انتظار ناقل خدمة Azure باستخدام az servicebus queue create الأمر .

    az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NS
    
  3. إنشاء قاعدة تخويل ناقل خدمة 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
    
  4. احصل على بيانات اعتماد ناقل خدمة 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

  1. قم بتكوين kubectl للاتصال بالمجموعة باستخدام az aks get-credentials الأمر .

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. افتح الملف aks-store-quickstart.yaml باستخدام محرر نص كما يلي:

  3. أزل أقسام 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.

  4. احفظ الملف المحدث وأغلقه 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
    

اختبر التطبيق

وضع طلب عينة

  1. احصل على عنوان IP الخارجي للخدمة store-front باستخدام kubectl get service الأمر .

    kubectl get service store-front
    
  2. انتقل إلى عنوان IP الخارجي للخدمة store-front في المستعرض باستخدام http://<external-ip>.

  3. قم بوضع طلب عن طريق اختيار منتج وتحديد إضافة إلى عربة التسوق.

  4. حدد Cart لعرض طلبك، ثم حدد Checkout.

عرض الترتيب في قائمة انتظار ناقل خدمة Azure

  1. انتقل إلى مدخل Microsoft Azure وافتح مساحة الاسم ناقل خدمة Azure التي أنشأتها سابقا.
  2. ضمن Entities، حدد Queues، ثم حدد قائمة انتظار الطلبات .
  3. في قائمة انتظار الطلبات ، حدد Service Bus Explorer.
  4. حدد نظرة خاطفة من البداية لعرض الطلب الذي أرسلته.

الخطوات التالية

في هذا البرنامج التعليمي، استخدمت ناقل خدمة Azure لتحديث نموذج التطبيق واختباره. لقد تعرفت على كيفية:

  • إنشاء مساحة اسم ناقل خدمة Azure وقائمة انتظار.
  • قم بتحديث ملف بيان Kubernetes لاستخدام قائمة انتظار ناقل خدمة Azure.
  • اختبر التطبيق المحدث عن طريق تقديم طلب.

في البرنامج التعليمي التالي، ستتعلم كيفية توسيع نطاق تطبيق في AKS.