Samouczek — przygotowywanie aplikacji dla usługi Azure Kubernetes Service (AKS)
W tym samouczku, część 1 z siedmiu, przygotujesz aplikację z wieloma kontenerami do użycia na platformie Kubernetes. Istniejące narzędzia programistyczne, takie jak Docker Compose, są używane do lokalnego kompilowania i testowania aplikacji. Dowiedz się, jak odbywa się:
- Klonowanie źródła przykładowej aplikacji z usługi GitHub.
- Utwórz obraz kontenera na podstawie przykładowego źródła aplikacji.
- Przetestuj aplikację z wieloma kontenerami w lokalnym środowisku platformy Docker.
Po zakończeniu następująca aplikacja będzie uruchomiona w lokalnym środowisku programistycznym:
W kolejnych samouczkach przekażesz obraz kontenera do usługi Azure Container Registry (ACR), a następnie wdrożysz go w klastrze usługi AKS.
Zanim rozpoczniesz
Ten samouczek zakłada, że masz podstawową wiedzę na temat najważniejszych pojęć dotyczących platformy Docker, takich jak kontenery, obrazy kontenerów i polecenia docker
. Aby uzyskać podstawowe informacje na temat kontenerów, zapoznaj się z tematem Get started with Docker (Rozpoczynanie pracy z platformą Docker).
Do ukończenia tego samouczka konieczne będzie lokalne środowisko programistyczne platformy Docker z działającymi kontenerami systemu Linux. Środowisko Docker zawiera pakiety, które umożliwiają konfigurowanie platformy Docker w systemie Mac, Windows lub Linux.
Uwaga
Usługa Azure Cloud Shell nie zawiera składników platformy Docker wymaganych do wykonania każdego kroku w tych samouczkach. Dlatego zalecamy używanie pełnego środowiska programistycznego usługi Docker.
Pobieranie kodu aplikacji
Przykładowa aplikacja używana w tym samouczku to podstawowa aplikacja frontonu sklepu obejmująca następujące wdrożenia i usługi Kubernetes:
- Front sklepu: aplikacja internetowa dla klientów do wyświetlania produktów i składania zamówień.
- Usługa produktu: wyświetla informacje o produkcie.
- Usługa zamawiania: umieszcza zamówienia.
- Rabbit MQ: kolejka komunikatów dla kolejki zamówień.
Użyj narzędzia git , aby sklonować przykładową aplikację do środowiska deweloperskiego.
git clone https://github.com/Azure-Samples/aks-store-demo.git
Przejdź do sklonowanego katalogu.
cd aks-store-demo
Przejrzyj plik Docker Compose
Przykładowa aplikacja utworzona w tym samouczku używa pliku YAML docker-compose-quickstart z sklonowanego repozytorium.
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
Tworzenie obrazów kontenerów i uruchamianie aplikacji
Za pomocą narzędzia Docker Compose można zautomatyzować tworzenie obrazów kontenerów i wdrażanie aplikacji wielokontenerowych.
Docker
Utwórz obraz kontenera, pobierz obraz RabbitMQ i uruchom aplikację przy użyciu
docker compose
polecenia :docker compose -f docker-compose-quickstart.yml up -d
Wyświetl utworzone obrazy przy użyciu
docker images
polecenia .docker images
Następujące skrócone przykładowe dane wyjściowe pokazują utworzone obrazy:
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 ...
Wyświetl uruchomione kontenery przy użyciu
docker ps
polecenia .docker ps
Następujące skrócone przykładowe dane wyjściowe pokazują cztery uruchomione kontenery:
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
Testowanie aplikacji w środowisku lokalnym
Aby wyświetlić uruchomioną aplikację, przejdź do http://localhost:8080
witryny w lokalnej przeglądarce internetowej. Zostanie załadowana przykładowa aplikacja, jak pokazano w poniższym przykładzie:
Na tej stronie możesz wyświetlać produkty, dodawać je do koszyka, a następnie składać zamówienie.
Czyszczenie zasobów
Ponieważ sprawdzono funkcjonalność aplikacji, możesz zatrzymać i usunąć uruchomione kontenery. Nie usuwaj obrazów kontenerów — użyj ich w następnym samouczku.
Zatrzymaj i usuń wystąpienia kontenera i zasoby przy użyciu
docker-compose down
polecenia .docker compose down
Następne kroki
- Interfejs wiersza polecenia platformy Azure
- Interfejs wiersza polecenia dla deweloperów platformy Azure
W tym samouczku utworzono przykładową aplikację, utworzono obrazy kontenerów dla aplikacji, a następnie przetestowano aplikację. W tym samouczku omówiono:
- Klonowanie źródła przykładowej aplikacji z usługi GitHub.
- Utwórz obraz kontenera na podstawie przykładowego źródła aplikacji.
- Przetestuj aplikację z wieloma kontenerami w lokalnym środowisku platformy Docker.
W następnym samouczku dowiesz się, jak przechowywać obrazy kontenerów w usłudze ACR.
Azure Kubernetes Service
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla