تشغيل سريع: نشر تطبيق باستخدام ملحق مجموعة Dapr لخدمة Azure Kubernetes (AKS) أو Kubernetes التي تدعم Arc
في هذا التشغيل السريع، يمكنك استخدام ملحق نظام مجموعة Dapr في نظام مجموعة Kubernetes الذي يدعم AKS أو Arc. يمكنك نشر مثالhello world
، والذي يتكون من تطبيق Python الذي ينشئ الرسائل وتطبيق Node.js الذي يستهلك الرسائل ويستمر فيها.
المتطلبات الأساسية
- اشتراك Azure. إذا لم يكن لديك اشتراك Azure، يمكنك إنشاء حساب مجاني.
- تثبيت Azure CLI أوAzure PowerShell.
- نظام مجموعة AKS مع:
- تمكين هوية حمل العمل
- الهوية المدارة التي تم إنشاؤها في نفس الاشتراك
- حساب خدمة Kubernetes
- بيانات اعتماد الهوية الموحدة
- ملحق نظام مجموعة Dapr المثبت على نظام مجموعة AKS
- kubectl مثبت محليا.
نسخ المستودع
استنساخ مستودع التشغيل السريع ل Dapr باستخدام
git clone
الأمر .git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
قم بالتغيير
dapr-aks-extension-quickstart
إلى الدليل.
إنشاء مخزن Redis وتكوينه
افتح مدخل Azure لبدء تدفق إنشاء Azure Cache for Redis.
- املأ المعلومات الموصى بها وفقا لإرشادات التشغيل السريع "إنشاء ذاكرة تخزين مؤقت Redis مفتوحة المصدر".
- حدد Create لبدء نشر مثيل Redis.
التحقق من معلومات المورد
- بمجرد نشر مورد Redis، انتقل إلى صفحة النظرة العامة الخاصة به.
- دون ما يلي:
- اسم المضيف، الموجود في قسم Essentials في صفحة نظرة عامة على ذاكرة التخزين المؤقت. يبدو تنسيق اسم المضيف مشابها لما يلي:
xxxxxx.redis.cache.windows.net
. - منفذ SSL، الموجود في شفرة الإعدادات المتقدمة لذاكرة التخزين المؤقت. القيمة الافتراضية هي
6380
.
- اسم المضيف، الموجود في قسم Essentials في صفحة نظرة عامة على ذاكرة التخزين المؤقت. يبدو تنسيق اسم المضيف مشابها لما يلي:
- انتقل إلى شفرة المصادقة وتحقق من تمكين مصادقة Microsoft Entra على المورد الخاص بك.
إضافة هوية مدارة
في جزء المصادقة ، اكتب اسم الهوية المدارة التي قمت بإنشائها كمتطلب أساسي في الحقل ضمن خانة الاختيار تمكين مصادقة Microsoft Entra.
تحقق من إضافة هويتك المدارة كأذونات نهج وصول مالك البيانات المعينة من قبل مستخدم Redis.
تمكين الوصول إلى الشبكة العامة
بالنسبة لهذا السيناريو، تستخدم ذاكرة التخزين المؤقت Redis الوصول إلى الشبكة العامة. تأكد من تنظيف الموارد عند الانتهاء من هذا التشغيل السريع.
- انتقل إلى شفرة نقطة النهاية الخاصة.
- انقر فوق تمكين الوصول إلى الشبكة العامة من القائمة العلوية.
تكوين مكونات Dapr
في redis.yaml
، يتم تكوين المكون لاستخدام مصادقة معرف Entra باستخدام هوية حمل العمل الممكنة لمجموعة AKS. لا توجد مفاتيح وصول مطلوبة.
- name: useEntraID
value: "true"
- name: enableTLS
value: true
في محرر التعليمات البرمجية المفضل لديك، انتقل إلى
deploy
الدليل في العينة وافتحredis.yaml
.بالنسبة إلى
redisHost
، استبدل قيمة العنصر النائب<REDIS_HOST>:<REDIS_PORT>
باسم مضيف ذاكرة التخزين المؤقت Redis ومنفذ SSL الذي حفظته سابقا من مدخل Microsoft Azure.- name: redisHost value: <your-cache-name>.redis.cache.windows.net:6380
تطبيق التكوين
redis.yaml
تطبيق الملف باستخدامkubectl apply
الأمر .kubectl apply -f ./deploy/redis.yaml
تحقق من تكوين مخزن الحالة بنجاح باستخدام
kubectl get components.redis
الأمر .kubectl get components.redis -o yaml
الإخراج المتوقع
component.dapr.io/statestore created
نشر التطبيق Node.js مع Dapr الجانبي
تكوين تطبيق Node.js
في node.yaml
، تحتوي مواصفات الجراب على التسمية المضافة لاستخدام هوية حمل العمل، :
labels:
app: node
azure.workload.identity/use: "true"
انتقل إلى
deploy
الدليل وافتحnode.yaml
.استبدل قيمة العنصر النائب
<SERVICE_ACCOUNT_NAME>
باسمserviceAccountName
حساب الخدمة الذي أنشأته.- يجب أن تكون هذه القيمة هي نفس حساب الخدمة الذي استخدمته لإنشاء بيانات اعتماد الهوية الموحدة.
تطبيق التكوين
تطبيق نشر تطبيق Node.js على نظام المجموعة باستخدام
kubectl apply
الأمر .kubectl apply -f ./deploy/node.yaml
عمليات توزيع Kubernetes غير متزامنة، لذلك قبل الانتقال إلى الخطوات التالية، تحقق من اكتمال النشر باستخدام الأمر التالي:
kubectl rollout status deploy/nodeapp
الوصول إلى الخدمة باستخدام
kubectl get svc
الأمر .kubectl get svc nodeapp
دون ملاحظة في
EXTERNAL-IP
الإخراج.
تحقق من خدمة Node.js
باستخدام
curl
، اتصل بالخدمة باستخدام .EXTERNAL-IP
curl $EXTERNAL_IP/ports
مثال على الإخراج
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
إرسال طلب إلى التطبيق.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
قم بتأكيد الطلب.
curl $EXTERNAL_IP/order
الإخراج المتوقع
{ "orderId": "42" }
نشر التطبيق Python باستخدام Dapr sidecar
تكوين تطبيق Python
في python.yaml
، تحتوي مواصفات الجراب على التسمية المضافة لاستخدام هوية حمل العمل، :
labels:
app: node
azure.workload.identity/use: "true"
انتقل إلى
deploy
الدليل وافتحpython.yaml
.استبدل قيمة العنصر النائب
<SERVICE_ACCOUNT_NAME>
باسمserviceAccountName
حساب الخدمة الذي أنشأته.- يجب أن تكون هذه القيمة هي نفس حساب الخدمة الذي استخدمته لإنشاء بيانات اعتماد الهوية الموحدة.
تطبيق التكوين
نشر تطبيق Python إلى مجموعة Kubernetes باستخدام
kubectl apply
الأمر .kubectl apply -f ./deploy/python.yaml
عمليات توزيع Kubernetes غير متزامنة، لذلك قبل الانتقال إلى الخطوات التالية، تحقق من اكتمال النشر باستخدام الأمر التالي:
kubectl rollout status deploy/pythonapp
مراقبة الرسائل وتأكيد المثابرة
الآن بعد أن تم نشر كل من تطبيقي Node.js وPython، يمكنك مشاهدة الرسائل تأتي من خلالها.
احصل على سجلات تطبيق Node.js باستخدام
kubectl logs
الأمر .kubectl logs --selector=app=node -c node --tail=-1
الإخراج المتوقع
Got a new order! Order ID: 1 Successfully persisted state Got a new order! Order ID: 2 Successfully persisted state Got a new order! Order ID: 3 Successfully persisted state
باستخدام
curl
، اتصل بنقطة نهاية طلب تطبيق Node.js للحصول على أحدث طلب.curl $EXTERNAL_IP/order
يجب أن تشاهد أحدث إخراج JSON في الاستجابة.
تنظيف الموارد
إذا لم تعد تخطط لاستخدام الموارد من هذا التشغيل السريع، يمكنك حذف كافة الموارد المقترنة عن طريق إزالة مجموعة الموارد.
قم بإزالة مجموعة الموارد، الكتلة، مساحة الاسم، وجميع الموارد ذات الصلة باستخدام الأمر az group delete .
az group delete --name MyResourceGroup
الخطوات التالية
Azure Kubernetes Service