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:
- Een voorbeeldtoepassingsbron klonen 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 tutorials uploadt u de containerafbeelding naar een Azure Container Registry (ACR) en deployed 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 voor de configuratie van Docker 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 voorbeeldtoepassing die in deze zelfstudie wordt gebruikt, is een front-app voor de basisopslag, 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.
Gebruik Git om de voorbeeldtoepassing te klonen naar uw ontwikkelomgeving.
git clone https://github.com/Azure-Samples/aks-store-demo.git
Navigeer naar de gekloonde map.
cd aks-store-demo
Docker Compose-bestand controleren
De voorbeeldtoepassing die u in deze zelfstudie maakt, maakt gebruik van het YAML-bestand docker-compose-quickstart uit de opslagplaats 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 compose
opdracht:docker compose -f docker-compose-quickstart.yml up -d
Bekijk de gemaakte afbeeldingen met behulp van de
docker images
opdracht.docker images
In 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 ps
opdracht.docker ps
In 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 - je gebruikt ze in de volgende tutorial.
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:
- Een voorbeeldtoepassingsbron klonen uit GitHub.
- Maak een containerimage van de voorbeeldtoepassing broncode.
- Test de toepassing met meerdere containers in een lokale Docker-omgeving.
In de volgende zelfstudie leert u hoe u containerafbeeldingen opslaat in een ACR.
Azure Kubernetes Service