Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze zelfstudie bereidt u een toepassing met meerdere containers voor voor gebruik in Kubernetes. U gebruikt bestaande ontwikkelhulpprogramma's zoals Docker Compose om de toepassing lokaal te bouwen en te testen. U leert het volgende:
- Kloon een voorbeeldtoepassingsbron uit GitHub.
- Maak een containerafbeelding van de voorbeeldapplicatiebron.
- Test de toepassing met meerdere containers in een lokale Docker-omgeving.
Als u dit allemaal hebt gedaan, kunt u de volgende toepassing uitvoeren in uw lokale ontwikkelomgeving:
In latere zelfstudies uploadt u de containerafbeelding naar een Azure Container Registry (ACR) en implementeert u deze vervolgens in een AKS-cluster.
Voordat u begint
In deze handleiding wordt ervan uitgegaan dat u een basiskennis hebt van de kernconcepten van Docker, zoals containers, containerimages en docker opdrachten. Zie Aan de slag met Docker voor een uitleg van de basisprincipes van containers.
Voor deze zelfstudie hebt u een lokale Docker-ontwikkelomgeving met Linux-containers nodig. Docker biedt pakketten die Docker configureren op een Mac, Windows of Linux systeem.
Notitie
Azure Cloud Shell bevat niet de Docker-onderdelen die nodig zijn om elke stap in deze zelfstudies te voltooien. Daarom raden wij u aan een volledige Docker-ontwikkelomgeving te gebruiken.
Toepassingscode ophalen
De sample-toepassing die in deze zelfstudie wordt gebruikt, is een eenvoudige store-front-app, waaronder de volgende Kubernetes-implementaties en -services:
- Webwinkel: Webtoepassing voor klanten om producten te bekijken en bestellingen te plaatsen.
- Productservice: toont productgegevens.
- Orderservice: Orders plaatsen.
- Rabbit MQ: Berichtenwachtrij voor een orderwachtrij.
Maak een map op uw computer en schakel over naar die map in uw terminalsessie, zoals Bash. In dit voorbeeld wordt een map met de naam demorepo gebruikt, maar u kunt elke gewenste naam gebruiken.
mkdir demorepo cd demorepoGebruik Git om de voorbeeldtoepassing te klonen naar uw ontwikkelomgeving.
git clone https://github.com/Azure-Samples/aks-store-demo.gitNavigeer naar de gekloonde map.
cd aks-store-demo
Docker Compose-bestand controleren
De voorbeeldtoepassing die u in deze zelfstudie maakt, gebruikt het YAML-bestand docker-compose-quickstart YAML-bestand uit de repository die u hebt gekloond.
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
Containerinstallatiekopieën maken en toepassing uitvoeren
U kunt Docker Compose gebruiken om het bouwen van containerinstallatiekopieën en de implementatie van toepassingen met meerdere containers te automatiseren.
Docker
Maak de containerinstallatiekopieën, download de RabbitMQ-installatiekopieën en start de toepassing met behulp van de
docker composeopdracht:docker compose -f docker-compose-quickstart.yml up -dBekijk de gemaakte afbeeldingen met behulp van de
docker imagesopdracht.docker imagesIn de volgende ingekorte voorbeelduitvoer ziet u de aangemaakte afbeeldingen:
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 ...Bekijk de actieve containers met behulp van de
docker psopdracht.docker psIn de volgende verkorte voorbeelduitvoer ziet u vier actieve containers:
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
Applicatie lokaal testen
Als u de actieve toepassing wilt zien, navigeer naar http://localhost:8080 in een lokale webbrowser. De voorbeeldtoepassing wordt dan geladen, zoals wordt weergegeven in het volgende voorbeeld:
Op deze pagina kunt u producten bekijken, toevoegen aan uw winkelwagen en vervolgens een bestelling plaatsen.
Resources opschonen
Omdat u de functionaliteit van de toepassing hebt gevalideerd, kunt u de actieve containers stoppen en verwijderen. Verwijder de containerafbeeldingen niet omdat u ze in de volgende tutorial gebruikt.
Stop en verwijder de containerinstanties en -resources met behulp van de docker-compose down opdracht.
docker compose down
Volgende stappen
In deze zelfstudie hebt u een voorbeeldtoepassing gemaakt, containerinstallatiekopieën voor de toepassing gemaakt en vervolgens de toepassing getest. U hebt geleerd hoe u:
- Kloon een voorbeeldtoepassingsbron uit GitHub.
- Maak een containerafbeelding van de voorbeeldapplicatiebron.
- Test de toepassing met meerdere containers in een lokale Docker-omgeving.
In de volgende zelfstudie leert u hoe u containerafbeeldingen opslaat in een ACR.