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:

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

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:

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. 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.

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

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, download de Redis-installatiekopie en start de toepassing met behulp van de docker compose opdracht:

    docker compose -f docker-compose-quickstart.yml up -d
    
  2. 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-productservice    latest                       2b66a7e91eca
    aks-store-demo-orderservice      latest                       54ad5de546f9
    aks-store-demo-storefront        latest                       d9e3ac46a225
    rabbitmq                         3.11.17-management-alpine    79a570297657
    ...
    
  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
    21574cb38c1f        aks-store-demo-productservice
    c30a5ed8d86a        aks-store-demo-orderservice
    d10e5244f237        aks-store-demo-storefront
    94e00b50b86a        rabbitmq:3.11.17-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:

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 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.