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:
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:
- 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.
Pomocí Gitu naklonujte ukázkovou aplikaci do vývojového prostředí.
git clone https://github.com/Azure-Samples/aks-store-demo.git
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ě.
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
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
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
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-product-service latest 72f5cd7e6b84 aks-store-demo-order-service latest 54ad5de546f9 aks-store-demo-store-front latest 1125f85632ae ...
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 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
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:
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.
Azure Kubernetes Service