البرنامج التعليمي - إعداد تطبيق لخدمة Azure Kubernetes (AKS)
في هذا البرنامج التعليمي، الجزء الأول من سبعة، يمكنك إعداد تطبيق متعدد الحاويات لاستخدامه في Kubernetes. يمكنك استخدام أدوات التطوير الموجودة مثل Docker Compose لإنشاء التطبيق واختباره محليا. ستتعلم كيفية:
- استنساخ نموذج مصدر تطبيق من GitHub.
- إنشاء صورة حاوية من مصدر التطبيق النموذجي.
- اختبر التطبيق متعدد الحاويات في بيئة Docker محلية.
بمجرد الانتهاء من ذلك، يتم تشغيل التطبيق التالي في بيئة التطوير المحلية:
في البرامج التعليمية اللاحقة، يمكنك تحميل صورة الحاوية إلى Azure Container Registry (ACR)، ثم نشرها في مجموعة AKS.
قبل البدء
يفترض هذا البرنامج التعليمي فهما أساسيا لمفاهيم Docker الأساسية مثل الحاويات وصور الحاوية والأوامر docker
. للحصول على نظرة تمهيدية على أساسيات الحاوية، راجع بدء استخدام Docker.
لإكمال هذا البرنامج التعليمي، تحتاج إلى بيئة تطوير Docker محلي تشغل حاويات Linux. يوفر Docker حزما تقوم بتكوين Docker على نظام Mac أو Windows أو Linux .
إشعار
لا يتضمن Azure Cloud Shell مكونات Docker المطلوبة لإكمال كل خطوة في هذه البرامج التعليمية. لذلك، نوصي باستخدام بيئة تطوير Docker كاملة.
الحصول على التعليمة البرمجية للتطبيق
نموذج التطبيق المستخدم في هذا البرنامج التعليمي هو تطبيق أساسي للمتجر الأمامي بما في ذلك عمليات نشر وخدمات Kubernetes التالية:
- واجهة المتجر: تطبيق ويب للعملاء لعرض المنتجات وتقديم الطلبات.
- خدمة المنتج: تعرض معلومات المنتج.
- خدمة الطلب: يضع الطلبات.
- Rabbit MQ: قائمة انتظار الرسائل لقائمة انتظار الطلبات.
استخدم git لاستنساخ نموذج التطبيق إلى بيئة التطوير الخاصة بك.
git clone https://github.com/Azure-Samples/aks-store-demo.git
انتقل إلى المجلد المستنسخ.
cd aks-store-demo
مراجعة ملف Docker Compose
يستخدم نموذج التطبيق الذي تقوم بإنشائه في هذا البرنامج التعليمي ملف docker-compose-quickstart YAML من المستودع الذي نسخته.
services:
rabbitmq:
image: rabbitmq:3.13.2-management-alpine
container_name: 'rabbitmq'
restart: always
environment:
- "RABBITMQ_DEFAULT_USER=username"
- "RABBITMQ_DEFAULT_PASS=password"
ports:
- 15672:15672
- 5672:5672
healthcheck:
test: ["CMD", "rabbitmqctl", "status"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- ./rabbitmq_enabled_plugins:/etc/rabbitmq/enabled_plugins
networks:
- backend_services
order-service:
build: src/order-service
container_name: 'order-service'
restart: always
ports:
- 3000:3000
healthcheck:
test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://order-service:3000/health"]
interval: 30s
timeout: 10s
retries: 5
environment:
- ORDER_QUEUE_HOSTNAME=rabbitmq
- ORDER_QUEUE_PORT=5672
- ORDER_QUEUE_USERNAME=username
- ORDER_QUEUE_PASSWORD=password
- ORDER_QUEUE_NAME=orders
- ORDER_QUEUE_RECONNECT_LIMIT=3
networks:
- backend_services
depends_on:
rabbitmq:
condition: service_healthy
product-service:
build: src/product-service
container_name: 'product-service'
restart: always
ports:
- 3002:3002
healthcheck:
test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://product-service:3002/health"]
interval: 30s
timeout: 10s
retries: 5
environment:
- AI_SERVICE_URL=http://ai-service:5001/
networks:
- backend_services
store-front:
build: src/store-front
container_name: 'store-front'
restart: always
ports:
- 8080:8080
healthcheck:
test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://store-front:80/health"]
interval: 30s
timeout: 10s
retries: 5
environment:
- VUE_APP_PRODUCT_SERVICE_URL=http://product-service:3002/
- VUE_APP_ORDER_SERVICE_URL=http://order-service:3000/
networks:
- backend_services
depends_on:
- product-service
- order-service
networks:
backend_services:
driver: bridge
إنشاء صور الحاوية وتشغيل التطبيق
يمكنك استخدام Docker Compose لأتمتة إنشاء صور الحاوية ونشر التطبيقات متعددة الحاويات.
Docker
إنشاء صورة الحاوية، وتنزيل صورة RabbitMQ، وبدء تشغيل التطبيق باستخدام
docker compose
الأمر :docker compose -f docker-compose-quickstart.yml up -d
عرض الصور التي تم إنشاؤها
docker images
باستخدام الأمر .docker images
يظهر إخراج المثال المكثف التالي الصور التي تم إنشاؤها:
REPOSITORY TAG IMAGE ID aks-store-demo-product-service latest 72f5cd7e6b84 aks-store-demo-order-service latest 54ad5de546f9 aks-store-demo-store-front latest 1125f85632ae ...
عرض الحاويات قيد التشغيل باستخدام
docker ps
الأمر .docker ps
يظهر إخراج المثال المكثف التالي أربع حاويات قيد التشغيل:
CONTAINER ID IMAGE f27fe74cfd0a aks-store-demo-product-service df1eaa137885 aks-store-demo-order-service b3ce9e496e96 aks-store-demo-store-front 31df28627ffa rabbitmq:3.13.2-management-alpine
قم باختبار التطبيق محليًا
لمشاهدة التطبيق قيد التشغيل، انتقل إلى http://localhost:8080
في مستعرض ويب محلي. يقوم تطبيق العينة بالتحميل كما هو موضح في المثال التالي:
في هذه الصفحة، يمكنك عرض المنتجات وإضافتها إلى سلة التسوق الخاصة بك، ثم تقديم طلب.
تنظيف الموارد
نظرا لأنك تحققت من صحة وظيفة التطبيق، يمكنك إيقاف الحاويات قيد التشغيل وإزالتها. لا تحذف صور الحاوية - يمكنك استخدامها في البرنامج التعليمي التالي.
قم بإيقاف وإزالة مثيلات الحاوية والموارد باستخدام
docker-compose down
الأمر .docker compose down
الخطوات التالية
في هذا البرنامج التعليمي، قمت بإنشاء نموذج تطبيق، وإنشاء صور حاوية للتطبيق، ثم اختبار التطبيق. لقد تعرفت على كيفية:
- استنساخ نموذج مصدر تطبيق من GitHub.
- إنشاء صورة حاوية من مصدر التطبيق النموذجي.
- اختبر التطبيق متعدد الحاويات في بيئة Docker محلية.
في البرنامج التعليمي التالي، ستتعلم كيفية تخزين صور الحاوية في ACR.
Azure Kubernetes Service