Tutorial - Menyiapkan aplikasi untuk Azure Kubernetes Service (AKS)

Dalam tutorial ini, bagian satu dari tujuh, 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:

  • Kloning 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:

Cuplikan layar memperlihatkan Azure Store Front App yang berjalan secara lokal dibuka di browser web lokal.

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 sampel yang digunakan dalam tutorial ini adalah aplikasi depan penyimpanan dasar termasuk penyebaran dan layanan Kubernetes berikut:

Cuplikan layar arsitektur sampel Azure Store.

  • Simpan depan: Aplikasi web bagi pelanggan untuk melihat produk dan melakukan pemesanan.
  • Layanan produk: Menampilkan informasi produk.
  • Layanan pesanan: Menempatkan pesanan.
  • Rabbit MQ: Antrean pesan untuk antrean pesanan.
  1. Gunakan git untuk mengkloning aplikasi sampel ke lingkungan pengembangan Anda.

    git clone https://github.com/Azure-Samples/aks-store-demo.git
    
  2. Ubah menjadi direktori kloning.

    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.

version: "3.7"
services:
  rabbitmq:
    image: rabbitmq:3.11.17-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
  orderservice:
    build: src/order-service
    container_name: 'orderservice'
    restart: always
    ports:
      - 3000:3000
    healthcheck:
      test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://orderservice: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
  productservice:
    build: src/product-service
    container_name: 'productservice'
    restart: always
    ports:
      - 3002:3002
    healthcheck:
      test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://productservice:3002/health"]
      interval: 30s
      timeout: 10s
      retries: 5
    networks:
      - backend_services
  storefront:
    build: src/store-front
    container_name: 'storefront'
    restart: always
    ports:
      - 8080:8080
    healthcheck:
      test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://storefront:80/health"]
      interval: 30s
      timeout: 10s
      retries: 5
    environment:
      - VUE_APP_PRODUCT_SERVICE_URL=http://productservice:3002/
      - VUE_APP_ORDER_SERVICE_URL=http://orderservice:3000/
    networks:
      - backend_services
    depends_on:
      - productservice
      - orderservice
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.

Docker

  1. Buat gambar kontainer, unduh gambar Redis, dan mulai aplikasi menggunakan docker compose perintah :

    docker compose -f docker-compose-quickstart.yml up -d
    
  2. Lihat gambar yang dibuat menggunakan docker images perintah .

    docker images
    

    Contoh output ringkas berikut menunjukkan gambar yang dibuat:

    REPOSITORY                       TAG                          IMAGE ID
    aks-store-demo-productservice    latest                       2b66a7e91eca
    aks-store-demo-orderservice      latest                       54ad5de546f9
    aks-store-demo-storefront        latest                       d9e3ac46a225
    rabbitmq                         3.11.17-management-alpine    79a570297657
    ...
    
  3. Lihat kontainer yang sedang berjalan menggunakan docker ps perintah .

    docker ps
    

    Contoh output ringkas berikut menunjukkan empat kontainer yang sedang berjalan:

    CONTAINER ID        IMAGE
    21574cb38c1f        aks-store-demo-productservice
    c30a5ed8d86a        aks-store-demo-orderservice
    d10e5244f237        aks-store-demo-storefront
    94e00b50b86a        rabbitmq:3.11.17-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:

Cuplikan layar memperlihatkan Azure Store Front App dibuka di browser lokal.

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 - Anda menggunakannya di tutorial berikutnya.

  • Hentikan dan hapus instans kontainer dan sumber daya menggunakan docker-compose down perintah .

    docker compose down
    

Langkah berikutnya

Dalam tutorial ini, Anda membuat aplikasi sampel, membuat gambar kontainer untuk aplikasi, lalu menguji aplikasi. Anda mempelajari cara untuk:

  • Kloning 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.