Kurz – Příprava aplikace pro službu Azure Kubernetes Service (AKS)

V tomto kurzu, který je první ze sedmi částí, připravíte vícekontenerovou aplikaci, která se bude používat v Kubernetes. K místnímu sestavení a otestování aplikace používáte existující vývojové nástroje, jako je Docker Compose. Získáte informace pro:

  • Naklonujte ukázkový zdroj aplikace z GitHubu.
  • Vytvořte image kontejneru z ukázkového zdroje aplikace.
  • Otestujte vícekontenerovou aplikaci v místním prostředí Dockeru.

Po dokončení bude ve vašem místním vývojovém prostředí spuštěná následující aplikace:

Snímek obrazovky znázorňující aplikaci Front App pro Azure Store spuštěnou místně otevřenou v místním webovém prohlížeči

V pozdějších kurzech nahrajete image kontejneru do služby Azure Container Registry (ACR) a pak ji nasadíte do clusteru AKS.

Než začnete

V tomto kurzu se předpokládá základní znalost klíčových konceptů Dockeru, jako jsou kontejnery, image kontejnerů a příkazy docker. Základní informace o kontejnerech najdete v článku Get started with Docker (Začínáme s Dockerem).

K dokončení tohoto kurzu potřebujete místní vývojové prostředí pro Docker se spuštěnými kontejnery Linuxu. Docker nabízí balíčky pro konfiguraci Dockeru v systému Mac, Windows nebo Linux.

Poznámka:

Azure Cloud Shell neobsahuje komponenty Dockeru potřebné k dokončení každého kroku v těchto kurzech. Proto doporučujeme použít úplné vývojové prostředí pro Docker.


Získání kódu aplikace

Ukázková aplikace použitá v tomto kurzu je základní frontová aplikace pro Store, včetně následujících nasazení a služeb Kubernetes:

Snímek obrazovky s ukázkovou architekturou Azure Storu

  • Store front: Webová aplikace pro zákazníky k zobrazení produktů a objednávání.
  • Produktová služba: Zobrazuje informace o produktu.
  • Objednávka: Objednávky.
  • Rabbit MQ: Fronta zpráv pro frontu objednávek.
  1. Pomocí Gitu naklonujte ukázkovou aplikaci do vývojového prostředí.

    git clone https://github.com/Azure-Samples/aks-store-demo.git
    
  2. Přejděte do naklonovaného adresáře.

    cd aks-store-demo
    

Kontrola souboru Docker Compose

Ukázková aplikace, kterou vytvoříte v tomto kurzu, používá soubor YAML pro docker-compose-quickstart z naklonovaného úložiště.

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

Vytvoření imagí kontejneru a spuštění aplikace

Docker Compose můžete použít k automatizaci vytváření imagí kontejnerů a nasazení vícekontenerových aplikací.

Docker

  1. Vytvořte image kontejneru, stáhněte image RabbitMQ a spusťte aplikaci pomocí docker compose příkazu:

    docker compose -f docker-compose-quickstart.yml up -d
    
  2. Pomocí příkazu zobrazte vytvořené obrázky docker images .

    docker images
    

    Následující zhuštěný ukázkový výstup ukazuje vytvořené image:

    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. Zobrazte spuštěné kontejnery pomocí docker ps příkazu.

    docker ps
    

    Následující zhuštěný ukázkový výstup ukazuje čtyři spuštěné kontejnery:

    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
    

Testování aplikace v místním prostředí

Pokud chcete zobrazit spuštěnou aplikaci, přejděte do http://localhost:8080 místního webového prohlížeče. Načte se ukázková aplikace, jak je znázorněno v následujícím příkladu:

Snímek obrazovky znázorňující aplikaci Front App pro Azure Store otevřenou v místním prohlížeči

Na této stránce můžete zobrazit produkty, přidat je do košíku a pak zadat objednávku.

Vyčištění prostředků

Vzhledem k tomu, že jste ověřili funkčnost aplikace, můžete zastavit a odebrat spuštěné kontejnery. Neodstraňovat image kontejneru – použijete je v dalším kurzu.

  • Pomocí příkazu zastavte a odeberte instance kontejneru docker-compose down a prostředky.

    docker compose down
    

Další kroky

V tomto kurzu jste vytvořili ukázkovou aplikaci, vytvořili image kontejneru pro aplikaci a pak aplikaci otestovali. Naučili jste se:

  • Naklonujte ukázkový zdroj aplikace z GitHubu.
  • Vytvořte image kontejneru z ukázkového zdroje aplikace.
  • Otestujte vícekontenerovou aplikaci v místním prostředí Dockeru.

V dalším kurzu se dozvíte, jak ukládat image kontejnerů do ACR.