Delen via


Zelfstudie: Een toepassing voorbereiden voor Azure Kubernetes Service (AKS)

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:

Schermopname van de Azure Store Front-app die lokaal wordt geopend in een lokale webbrowser.

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:

Schermopname van azure Store-voorbeeldarchitectuur.

  • Webwinkel: Webtoepassing voor klanten om producten te bekijken en bestellingen te plaatsen.
  • Productservice: toont productgegevens.
  • Orderservice: Orders plaatsen.
  • Rabbit MQ: Berichtenwachtrij voor een orderwachtrij.
  1. Gebruik Git om de voorbeeldtoepassing te klonen naar uw ontwikkelomgeving.

    git clone https://github.com/Azure-Samples/aks-store-demo.git
    
  2. 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

  1. 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
    
  2. 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
    ...
    
  3. 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:

Schermopname van de Azure Store Front-app die is geopend in een lokale browser.

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.