Übung: Bereitstellen einer Anwendung in Ihrem Azure Kubernetes Service-Cluster
In dieser Übung stellen Sie den Back-End-Messagingdienst Ihres Unternehmens als Test-App in Azure Kubernetes Service (AKS) bereit. Der Dienst stellt eine Verbindung mit dem in der vorherigen Übung erstellten Redis-PaaS-Dienst her.
Hinweis
Der Code für den Dienst steht im GitHub-Repository zur Verfügung.
Erstellen einer Liste in Redis
Sie müssen eine Liste in Redis erstellen und mit einigen zufälligen Elementen auffüllen, um eine Warteschlange zu simulieren, die Daten empfängt. Jedes Element in der Warteschlange stellt etwas dar, das vom Microservice verarbeitet wird. Für diese Übung fügen Sie eine statische Anzahl von Elementen hinzu. Später in der Übung skalieren Sie den Microservice auf die Anzahl der Elemente in der Warteschlange.
Stellen Sie sicher, dass Docker auf Ihrem Computer ausgeführt wird.
Erstellen Sie lokal einen Redis-Container, um eine Verbindung mit der zuvor erstellten Azure Cache for Redis-Instanz herzustellen. Verwenden Sie dazu den Befehl
docker run
:docker run -it --rm redis redis-cli -h $REDIS_HOST -a $REDIS_KEY
Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:
redis-contoso-video.redis.cache.windows.net:6379>
Erstellen Sie eine Liste, und füllen Sie sie mit zufälligen Elementen auf. Verwenden Sie dazu den Befehl
lpush keda
: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
Überprüfen Sie die Länge der Liste mithilfe des Befehls
llen keda
:llen keda
Beenden Sie die Redis-Shell durch Eingabe von
exit
.
Erstellen eines Bereitstellungsmanifests
Sie erstellen eine Bereitstellungsmanifestdatei, um Ihre Anwendung bereitzustellen. Mithilfe der Manifestdatei können Sie definieren, welche Art von Ressource bereitgestellt werden soll. Außerdem lassen sich so die Details im Zusammenhang mit der Workload definieren.
Kubernetes gruppiert Container in logische Strukturen namens Pods, die über keine Intelligenz verfügen. Bei Bereitstellungen wird die fehlende Intelligenz zum Erstellen Ihrer Anwendung hinzugefügt.
Erstellen Sie in Cloud Shell mithilfe des
touch
-Befehls eine Manifestdatei für die Kubernetes-Bereitstellung namensdeployment.yaml
:touch deployment.yaml
Öffnen Sie den integrierten Editor in Cloud Shell, indem Sie
code .
eingeben.Öffnen Sie die Datei
deployment.yaml
, und fügen Sie den folgenden Manifestcode ein. Ersetzen Sie die Redis-Umgebungsvariablen durch Ihre eigenen Werte.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 ***
Speichern Sie die Manifestdatei (STRG+S), und schließen Sie den Editor (STRG+Q).
Anwenden des Manifests
Stellen Sie das Manifest mithilfe des
kubectl apply
-Befehls in Ihrem Cluster bereit:kubectl apply -f ./deployment.yaml
Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:
deployment.apps/contoso-microservice created
Vergewissern Sie sich mithilfe des Befehls
kubectl get deployment
, dass die Bereitstellung erfolgreich war:kubectl get deployment contoso-microservice
Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:
NAME READY UP-TO-DATE AVAILABLE AGE contoso-microservice 1/1 1 0 16s
Überprüfen Sie mithilfe des Befehls
kubectl get pods
, ob der Pod ausgeführt wird:kubectl get pods
Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:
NAME READY STATUS RESTARTS AGE contoso-microservice-7c58c5f699-r79mv 1/1 Running 0 63s