Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam tutorial ini, Anda menyiapkan aplikasi multi-kontainer untuk digunakan di Kubernetes. Anda menggunakan alat pengembangan yang ada seperti Docker Compose untuk membangun dan menguji aplikasi secara lokal. Anda akan mempelajari cara untuk:
- Mengkloning sumber aplikasi sampel dari GitHub.
- Buat gambar kontainer dari sumber aplikasi sampel.
- Uji aplikasi multi-kontainer di lingkungan Docker lokal.
Setelah selesai, aplikasi berikut berjalan di lingkungan pengembangan lokal Anda:
Dalam tutorial selanjutnya, Anda mengunggah gambar kontainer ke Azure Container Registry (ACR), lalu menyebarkannya ke kluster AKS.
Sebelum Anda mulai
Tutorial ini mengasumsikan pemahaman dasar tentang konsep core Docker seperti kontainer, citra kontainer, dan perintah docker. Untuk informasi awal tentang dasar-dasar kontainer, lihat Mulai dengan Docker.
Untuk menyelesaikan tutorial ini, Anda memerlukan lingkungan pengembangan Docker lokal yang menjalankan kontainer Linux. Docker menyediakan paket yang mengonfigurasi Docker pada sistem Mac, Windows, atau Linux.
Catatan
Azure Cloud Shell tidak menyertakan komponen Docker yang diperlukan untuk menyelesaikan setiap langkah dalam tutorial ini. Oleh karena itu, kami sarankan untuk menggunakan lingkungan pengembangan Docker penuh.
Mendapatkan kode aplikasi
Aplikasi contoh yang digunakan dalam tutorial ini adalah aplikasi etalase dasar yang mencakup deployment serta layanan Kubernetes berikut:
- Simpan depan: Aplikasi web bagi pelanggan untuk melihat produk dan melakukan pemesanan.
- Layanan produk: Menampilkan informasi produk.
- Layanan Pemesanan : Mengurus pemesanan.
- RabbitMQ: Antrean pesan untuk antrean pesanan.
Buat direktori di komputer Anda dan beralihlah ke direktori tersebut di sesi terminal Anda, seperti Bash. Contoh ini menggunakan direktori bernama demorepo tetapi Anda dapat menggunakan nama apa pun yang Anda inginkan.
mkdir demorepo cd demorepoGunakan git untuk mengkloning aplikasi sampel ke lingkungan pengembangan Anda.
git clone https://github.com/Azure-Samples/aks-store-demo.gitPindah ke direktori yang telah dikloning.
cd aks-store-demo
Meninjau file Docker Compose
Aplikasi sampel yang Anda buat dalam tutorial ini menggunakan file YAML docker-compose-quickstart dari repositori yang Anda kloning.
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
Membuat gambar kontainer dan menjalankan aplikasi
Anda dapat menggunakan Docker Compose untuk mengotomatiskan pembuatan gambar kontainer dan penyebaran aplikasi multi-kontainer.
Buat gambar kontainer, unduh gambar RabbitMQ, dan mulai aplikasi menggunakan
docker composeperintah :docker compose -f docker-compose-quickstart.yml up -dLihat gambar yang dibuat menggunakan
docker imagesperintah .docker imagesContoh output ringkas berikut menunjukkan gambar yang dibuat:
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 ...Lihat kontainer yang sedang berjalan menggunakan
docker psperintah .docker psContoh output ringkas berikut menunjukkan empat kontainer yang sedang berjalan:
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
Menguji aplikasi secara lokal
Untuk melihat aplikasi Anda yang sedang berjalan, navigasikan ke http://localhost:8080 di browser web lokal. Aplikasi sampel dimuat, seperti yang ditunjukkan dalam contoh berikut:
Di halaman ini, Anda dapat melihat produk, menambahkannya ke kelir Anda, lalu melakukan pemesanan.
Membersihkan sumber daya
Karena Anda memvalidasi fungsionalitas aplikasi, Anda dapat menghentikan dan menghapus kontainer yang sedang berjalan. Jangan hapus gambar kontainer karena Anda menggunakannya di tutorial berikutnya.
Hentikan dan hapus instans kontainer dan sumber daya menggunakan docker compose down perintah .
docker compose down
perintah Azure Developer CLI
Saat Anda menggunakan azd, tidak ada ketergantungan pada gambar kontainer yang dilakukan secara manual.
azd menangani provisi, penyebaran, dan pembersihan aplikasi dan kluster Anda dengan azd up perintah dan azd down , mirip dengan Docker.
Anda dapat menyesuaikan langkah-langkah persiapan untuk menggunakan Terraform atau Bicep sebelum menyebarkan kluster dalam bagian infra dari azure.yaml Anda. Secara default, proyek ini menggunakan Terraform:
infra:
provider: terraform
path: infra/terraform
Jika Anda ingin mengubah penyedia ke Bicep, perbarui file azure.yaml sebagai berikut:
infra:
provider: bicep
path: infra/bicep
Langkah berikutnya
Azure CLI
Dalam tutorial ini, Anda membuat aplikasi sampel, membuat gambar kontainer untuk aplikasi, lalu menguji aplikasi. Anda mempelajari cara untuk:
- Mengkloning sumber aplikasi sampel dari GitHub.
- Buat gambar kontainer dari sumber aplikasi sampel.
- Uji aplikasi multi-kontainer di lingkungan Docker lokal.
Dalam tutorial berikutnya, Anda mempelajari cara menyimpan gambar kontainer di ACR.
Azure Developer CLI
Dalam tutorial ini, Anda mengkloning aplikasi sampel menggunakan azd. Anda mempelajari cara untuk:
- Kloning sampel templat
azddari GitHub. - Lihat di mana gambar kontainer digunakan dari sumber aplikasi sampel.
Dalam tutorial berikutnya, Anda mempelajari cara membuat kluster menggunakan templat yang azd Anda kloning.