Självstudie – Distribuera ett program till Azure Kubernetes Service (AKS)
Kubernetes tillhandahåller en distribuerad plattform för containerbaserade program. Du skapar och distribuerar dina egna program och tjänster till ett Kubernetes-kluster och låter klustret hantera tillgängligheten och anslutningen.
I den här självstudien, del fyra av sju, distribuerar du ett exempelprogram till ett Kubernetes-kluster. Du lär dig att:
- Uppdatera en Kubernetes-manifestfil.
- Kör ett program i Kubernetes.
- Testa programmet.
Dricks
Med AKS kan du använda följande metoder för konfigurationshantering:
GitOps: Gör att deklarationer av klustrets tillstånd kan tillämpas automatiskt på klustret. Information om hur du använder GitOps för att distribuera ett program med ett AKS-kluster finns i förutsättningarna för Azure Kubernetes Service-kluster i självstudiekursen GitOps med Flux v2 .
DevOps: Gör att du kan skapa, testa och distribuera med kontinuerlig integrering (CI) och kontinuerlig leverans (CD). Exempel på hur du använder DevOps för att distribuera ett program med ett AKS-kluster finns i Skapa och distribuera till AKS med Azure Pipelines eller GitHub Actions för distribution till Kubernetes.
Innan du börjar
I tidigare självstudier paketerade du ett program i en containeravbildning, laddade upp avbildningen till Azure Container Registry och skapade ett Kubernetes-kluster. För att slutföra den här självstudien behöver du den förskapade aks-store-quickstart.yaml
Kubernetes-manifestfilen. Den här filen laddades ned i programmets källkod från Självstudie 1 – Förbereda programmet för AKS.
Den här självstudien kräver Azure CLI version 2.0.53 eller senare. Kontrollera din version med az --version
. Information om hur du installerar eller uppgraderar finns i Installera Azure CLI.
Uppdatera manifestfilen
I de här självstudierna lagrar din Azure Container Registry-instans (ACR) containeravbildningarna för exempelprogrammet. Om du vill distribuera programmet måste du uppdatera avbildningsnamnen i Kubernetes-manifestfilen så att det innehåller namnet på ACR-inloggningsservern.
Hämta din inloggningsserveradress med hjälp av
az acr list
kommandot och frågan för inloggningsservern.az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
Kontrollera att du är i den klonade katalogen aks-store-demo och öppna
aks-store-quickstart.yaml
sedan manifestfilen med en textredigerare.image
Uppdatera egenskapen för containrarna genom att ersätta ghcr.io/azure-samples med namnet på ACR-inloggningsservern.containers: ... - name: order-service image: <acrName>.azurecr.io/aks-store-demo/order-service:latest ... - name: product-service image: <acrName>.azurecr.io/aks-store-demo/product-service:latest ... - name: store-front image: <acrName>.azurecr.io/aks-store-demo/store-front:latest ...
Spara och stäng filen.
Kör appen
Distribuera programmet med kommandot
kubectl apply
som parsar manifestfilen och skapar de definierade Kubernetes-objekten.kubectl apply -f aks-store-quickstart.yaml
Följande exempelutdata visar de resurser som skapats på AKS-klustret:
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
Kontrollera att distributionen lyckas genom att visa poddarna med
kubectl
kubectl get pods
Testa programmet
När programmet körs så exponerar en Kubernetes-tjänst programmets klientdel mot Internet. Den här processen kan ta ett par minuter att slutföra.
Kommandorad
Övervaka förloppet med kommandot
kubectl get service
med--watch
argumentet .kubectl get service store-front --watch
EXTERNAL-IP
Till en början visas förstore-front
tjänsten som<pending>
:store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
EXTERNAL-IP
När adressen ändras från<pending>
till en offentlig IP-adress använder duCTRL-C
för att stoppakubectl
klockprocessen.Följande exempelutdata visar en giltig offentlig IP-adress som har tilldelats tjänsten:
store-front LoadBalancer 10.0.34.242 52.179.23.131 80:30676/TCP 67s
Visa programmet i praktiken genom att öppna en webbläsare och navigera till tjänstens externa IP-adress:
http://<external-ip>
.
Om programmet inte läses in kan det vara ett auktoriseringsproblem med avbildningsregistret. Du kan visa statusen för dina containrar med hjälp av kommandot kubectl get pods
. Om du inte kan hämta containeravbildningarna kan du läsa Autentisera med Azure Container Registry från Azure Kubernetes Service.
Azure Portal
Gå till Azure-portalen för att hitta distributionsinformationen.
Gå till aks-klusterresursen.
På tjänstmenyn går du till Kubernetes-resurser och väljer Tjänster och ingresser.
Kopiera den externa IP-adress som visas i kolumnen för
store-front
tjänsten.Klistra in IP-adressen i webbläsaren för att besöka butikssidan.
Rensa resurser
Eftersom du har verifierat programmets funktioner kan du nu ta bort klustret från programmet. Vi distribuerar programmet igen i nästa självstudie.
Stoppa och ta bort containerinstanserna och resurserna med kommandot
kubectl delete
.kubectl delete -f aks-store-quickstart.yaml
Kontrollera att alla programpoddar har tagits bort med kommandot
kubectl get pods
.kubectl get pods
Nästa steg
I den här självstudien distribuerade du ett Azure-exempelprogram till ett Kubernetes-kluster i AKS. Du har lärt dig att:
- Uppdatera en Kubernetes-manifestfil.
- Kör ett program i Kubernetes.
- Testa programmet.
I nästa självstudie får du lära dig hur du använder PaaS-tjänster för tillståndskänsliga arbetsbelastningar i Kubernetes.
Azure Kubernetes Service