Ćwiczenie — wdrażanie aplikacji w klastrze usługi Azure Kubernetes Service
W tym ćwiczeniu wdrożysz usługę obsługi komunikatów zaplecza firmy jako aplikację testową w usłudze Azure Kubernetes Service (AKS). Usługa łączy się z usługą PaaS redis utworzoną w poprzednim ćwiczeniu.
Uwaga
Kod usługi jest dostępny w repozytorium GitHub.
Tworzenie listy w usłudze Redis
Musisz utworzyć listę w usłudze Redis i wypełnić ją kilkoma elementami losowymi, aby symulować kolejkę odbierających dane. Każdy element w kolejce reprezentuje coś, co będzie przetwarzać mikrousługi. W tym ćwiczeniu dodasz statyczną liczbę elementów. W dalszej części ćwiczenia przeskalujesz mikrousługę do liczby elementów w kolejce.
Upewnij się, że platforma Docker jest uruchomiona na komputerze.
Utwórz kontener Redis lokalnie, aby nawiązać połączenie z usługą Azure Cache for Redis przy użyciu
docker run
polecenia :docker run -it --rm redis redis-cli -h $REDIS_HOST -a $REDIS_KEY
Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
redis-contoso-video.redis.cache.windows.net:6379>
Utwórz listę i wypełnij ją elementami losowymi przy użyciu
lpush keda
polecenia :lpush keda Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget interdum felis, ac ultricies nulla. Fusce vehicula mattis laoreet. Quisque facilisis bibendum dui, at scelerisque nulla hendrerit sed. Sed rutrum augue arcu, id maximus felis sollicitudin eget. Curabitur non libero rhoncus, pellentesque orci a, tincidunt sapien. Suspendisse laoreet vulputate sagittis. Vivamus ac magna lacus. Etiam sagittis facilisis dictum. Phasellus faucibus sagittis libero, ac semper lorem commodo in. Quisque tortor lorem, sollicitudin non odio sit amet, finibus molestie eros. Proin aliquam laoreet eros, sed dapibus tortor euismod quis. Maecenas sed viverra sem, at porta sapien. Sed sollicitudin arcu leo, vitae elementum
Sprawdź długość listy przy użyciu
llen keda
polecenia :llen keda
Zamknij powłokę Redis, wpisując .
exit
Tworzenie manifestu wdrożenia
Aby wdrożyć aplikację, należy utworzyć plik manifestu wdrożenia. Plik manifestu umożliwia zdefiniowanie typu zasobu, który chcesz wdrożyć, oraz szczegóły skojarzone z obciążeniem.
Platforma Kubernetes grupuje kontenery w strukturach logicznych nazywanych zasobnikami, które nie mają funkcji inteligentnych. Wdrożenia dodają brakujące funkcje inteligentne, aby utworzyć aplikację.
W usłudze Cloud Shell utwórz plik manifestu dla wdrożenia kubernetes o nazwie
deployment.yaml
przy użyciutouch
polecenia :touch deployment.yaml
Otwórz edytor zintegrowany w usłudze Cloud Shell, wprowadzając polecenie
code .
deployment.yaml
Otwórz plik i wklej następujący kod manifestu. Pamiętaj, aby zastąpić zmienne środowiskowe usługi Redis własnymi wartościami.apiVersion: apps/v1 kind: Deployment metadata: name: contoso-microservice spec: replicas: 1 # Tells K8S the number of containers to process the Redis list items selector: # Define the wrapping strategy matchLabels: # Match all pods with the defined labels app: contoso-microservice # Labels follow the `name: value` template template: # Template of the pod inside the Deployment metadata: labels: app: contoso-microservice spec: containers: - image: mcr.microsoft.com/mslearn/samples/redis-client:latest name: contoso-microservice resources: requests: cpu: 100m memory: 128Mi limits: cpu: 100m memory: 128Mi env: - name: REDIS_HOST value: "redis-contoso-video.redis.cache.windows.net" # *** REPLACE with your value *** - name: REDIS_PORT value: "6379" # *** REPLACE with your value *** - name: REDIS_LIST value: "keda" # *** REPLACE with your value *** - name: REDIS_KEY value: "******************************************" # *** REPLACE with your value ***
Zapisz plik manifestu (CTRL + S) i zamknij edytor (CTRL + Q).
Stosowanie manifestu
Wdróż manifest w klastrze przy użyciu
kubectl apply
polecenia :kubectl apply -f ./deployment.yaml
Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
deployment.apps/contoso-microservice created
Sprawdź, czy wdrożenie zakończyło się pomyślnie, używając
kubectl get deployment
polecenia :kubectl get deployment contoso-microservice
Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
NAME READY UP-TO-DATE AVAILABLE AGE contoso-microservice 1/1 1 0 16s
Sprawdź, czy zasobnik jest uruchomiony przy użyciu
kubectl get pods
polecenia :kubectl get pods
Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
NAME READY STATUS RESTARTS AGE contoso-microservice-7c58c5f699-r79mv 1/1 Running 0 63s