Oefening: een toepassing implementeren in uw Azure Kubernetes Service-cluster
In deze oefening implementeert u de back-endberichtenservice van uw bedrijf als een test-app op Azure Kubernetes Service (AKS). De service maakt verbinding met de Redis PaaS-service die u in de vorige oefening hebt gemaakt.
Notitie
De code voor de service is beschikbaar in de GitHub-opslagplaats.
Een lijst maken in Redis
U moet een lijst maken in Redis en deze vullen met enkele willekeurige elementen om een wachtrij te simuleren die gegevens ontvangt. Elk item in de wachtrij vertegenwoordigt iets dat door de microservice wordt verwerkt. Voor deze oefening voegt u een statisch aantal items toe. Verderop in de oefening schaalt u de microservice naar het aantal items in de wachtrij.
Zorg ervoor dat Docker wordt uitgevoerd op uw computer.
Maak een Redis-container lokaal om verbinding te maken met uw Azure Cache voor Redis met behulp van de opdracht
docker run
:docker run -it --rm redis redis-cli -h $REDIS_HOST -a $REDIS_KEY
De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:
redis-contoso-video.redis.cache.windows.net:6379>
Maak een lijst en vul deze met willekeurige elementen met behulp van de opdracht
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
Controleer de lengte van de lijst met behulp van de opdracht
llen keda
:llen keda
Sluit de Redis-shell af door
exit
te typen.
Een implementatiemanifest maken
U maakt een distributiemanifestbestand om uw toepassing te implementeren. Met het manifestbestand kunt u definiëren welk type resource u wilt implementeren en de details die aan de workload zijn gekoppeld.
Kubernetes groepeert containers in logische structuren die pods worden genoemd, die geen intelligentie hebben. Implementaties voegen de ontbrekende intelligentie toe om uw toepassing te maken.
Maak in Cloud Shell een manifestbestand voor de Kubernetes-implementatie met de naam
deployment.yaml
met behulp van de opdrachttouch
:touch deployment.yaml
Open de geïntegreerde editor in Cloud Shell door
code .
in te voeren.Open het bestand
deployment.yaml
en plak de volgende manifestcode. Zorg ervoor dat u de Redis-omgevingsvariabelen vervangt door uw eigen waarden.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 ***
Sla het manifestbestand (CTRL + S) op en sluit de editor(Ctrl + Q).
Het manifest toepassen
Implementeer het manifest in uw cluster met behulp van de opdracht
kubectl apply
:kubectl apply -f ./deployment.yaml
De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:
deployment.apps/contoso-microservice created
Controleer of de implementatie is geslaagd met behulp van de opdracht
kubectl get deployment
:kubectl get deployment contoso-microservice
De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:
NAME READY UP-TO-DATE AVAILABLE AGE contoso-microservice 1/1 1 0 16s
Controleer of de pod draait met de opdracht
kubectl get pods
:kubectl get pods
De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:
NAME READY STATUS RESTARTS AGE contoso-microservice-7c58c5f699-r79mv 1/1 Running 0 63s