Zelfstudie: Een toepassing voorbereiden voor Azure Kubernetes Service (AKS)
In deze zelfstudie bereidt u deel één van zeven voor om een toepassing met meerdere containers voor te bereiden 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 containerinstallatiekopieën op basis van de voorbeeldtoepassingsbron.
- 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 containerinstallatiekopieën naar een Azure Container Registry (ACR) en implementeert u deze vervolgens in een AKS-cluster.
Voordat u begint
In deze zelfstudie wordt ervan uitgegaan dat u een basiskennis hebt van Docker-kernconcepten zoals containers, containerinstallatiekopieën 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
Wijzig in 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 installatiekopieën met behulp van de
docker images
opdracht.docker images
In de volgende verkorte voorbeelduitvoer ziet u de gemaakte installatiekopieën:
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
Toepassing lokaal testen
Als u de actieve toepassing wilt zien, gaat u naar http://localhost:8080
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 containerinstallatiekopieën niet. U gebruikt deze in de volgende zelfstudie.
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 containerinstallatiekopieën op basis van de voorbeeldtoepassingsbron.
- Test de toepassing met meerdere containers in een lokale Docker-omgeving.
In de volgende zelfstudie leert u hoe u containerinstallatiekopieën opslaat in een ACR.
Azure Kubernetes Service