Oktatóanyag – Alkalmazás előkészítése az Azure Kubernetes Service-hez (AKS)
Ebben az oktatóanyagban a hét első része egy többtárolós alkalmazást készít elő a Kubernetesben való használatra. A meglévő fejlesztői eszközök, például a Docker Compose használatával helyileg hozhatja létre és tesztelheti az alkalmazást. Az alábbiak végrehajtásának módját ismerheti meg:
- Mintaalkalmazás-forrás klónozása a GitHubról.
- Hozzon létre egy tárolórendszerképet a mintaalkalmazás forrásából.
- Tesztelje a többtárolós alkalmazást egy helyi Docker-környezetben.
Miután végzett ezzel, az alábbi alkalmazás a helyi fejlesztői környezetben fut majd.
A későbbi oktatóanyagokban feltölti a tárolórendszerképet egy Azure Container Registrybe (ACR), majd üzembe helyezi azt egy AKS-fürtben.
Mielőtt elkezdené
Az oktatóanyag feltételezi, hogy rendelkezik a Docker fő fogalmaira, például a tárolókra, tárolórendszerképekre és a docker
-parancsokra vonatkozó alapvető ismeretekkel. A tárolókkal kapcsolatos alapfogalmakért tekintse meg a Docker használatának első lépéseivel foglalkozó témakört.
Az oktatóanyag elvégzéséhez szüksége lesz egy Linuxos tárolókat futtató helyi Docker fejlesztési környezetre. A Docker csomagokat biztosít, amelyekkel a Docker Mac, Windows vagy Linux rendszereken konfigurálható.
Feljegyzés
Az Azure Cloud Shell nem tartalmazza az oktatóanyagok minden lépésének elvégzéséhez szükséges Docker-összetevőket. Ezért ajánlott egy teljes Docker fejlesztési környezet használata.
Az alkalmazáskód letöltése
Az oktatóanyagban használt mintaalkalmazás egy alapszintű áruházi előtéralkalmazás, amely a következő Kubernetes-telepítéseket és -szolgáltatásokat tartalmazza:
- Áruházi előtér: Webalkalmazás az ügyfelek számára termékek megtekintésére és megrendelések leadására.
- Termékszolgáltatás: A termékinformációkat jeleníti meg.
- Rendelési szolgáltatás: Rendeléseket rendel.
- Nyúl MQ: Üzenetsor rendelési üzenetsorhoz.
A git használatával klónozza a mintaalkalmazást a fejlesztői környezetbe.
git clone https://github.com/Azure-Samples/aks-store-demo.git
Váltson át a klónozott könyvtárra.
cd aks-store-demo
Docker Compose-fájl áttekintése
Az oktatóanyagban létrehozott mintaalkalmazás a docker-compose-quickstart YAML-fájlt használja a klónozott adattárból.
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
Tárolólemezképek létrehozása és alkalmazás futtatása
A Docker Compose használatával automatizálhatja a tárolólemezképek létrehozását és a többtárolós alkalmazások üzembe helyezését.
Docker
Hozza létre a tárolórendszerképet, töltse le a RabbitMQ-lemezképet, és indítsa el az alkalmazást a
docker compose
következő paranccsal:docker compose -f docker-compose-quickstart.yml up -d
A parancs használatával megtekintheti a
docker images
létrehozott képeket.docker images
A következő tömörített példakimenet a létrehozott képeket jeleníti meg:
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 ...
Tekintse meg a futó tárolókat a
docker ps
parancs használatával.docker ps
A következő tömörített példakimenet négy futó tárolót mutat be:
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
Az alkalmazás helyi tesztelése
A futó alkalmazás megtekintéséhez navigáljon http://localhost:8080
egy helyi webböngészőben. A mintaalkalmazás betöltődik az alábbi példában látható módon:
Ezen az oldalon megtekintheti a termékeket, hozzáadhatja őket a kosárhoz, majd megrendelheti őket.
Az erőforrások eltávolítása
Mivel érvényesítette az alkalmazás funkcióit, leállíthatja és eltávolíthatja a futó tárolókat. Ne törölje a tárolórendszerképeket – ezeket a következő oktatóanyagban fogja használni.
Állítsa le és távolítsa el a tárolópéldányokat és -erőforrásokat a
docker-compose down
parancs használatával.docker compose down
Következő lépések
Ebben az oktatóanyagban létrehozott egy mintaalkalmazást, létrehozott tárolólemezképeket az alkalmazáshoz, majd tesztelte az alkalmazást. Megtanulta végrehajtani az alábbi műveleteket:
- Mintaalkalmazás-forrás klónozása a GitHubról.
- Hozzon létre egy tárolórendszerképet a mintaalkalmazás forrásából.
- Tesztelje a többtárolós alkalmazást egy helyi Docker-környezetben.
A következő oktatóanyagban megtudhatja, hogyan tárolhat tárolólemezképeket egy ACR-ben.