Dela via


Självstudie: Uppdatera ett program i AKS aktiverat av Azure Arc

Gäller för: AKS på Azure Local 22H2, AKS på Windows Server

När du har distribuerat ett program i Kubernetes med hjälp av AKS aktiverat av Arc kan du uppdatera det genom att ange en ny containeravbildning eller avbildningsversion. Du bör mellanlagra en uppdatering så att endast en del av distributionen uppdateras samtidigt. Den här mellanlagrade uppdateringen gör att programmet kan fortsätta att köras under uppdateringen. Det ger också en mekanism för återställning om ett distributionsfel inträffar.

I den här självstudien, del sex av sju, beskrivs hur du uppdaterar Azure Vote-exempelappen. Du lär dig hur du:

  • Uppdatera klientdelens programkod
  • Skapa en uppdaterad containeravbildning
  • Överföra containeravbildningen till Azure Container Registry
  • Distribuera den uppdaterade containeravbildningen

Innan du börjar

I tidigare självstudier har du lärt dig att:

  • Paketera ett program i en containeravbildning och ladda upp avbildningen till Azure Container Registry.
  • Skapa ett Kubernetes-kluster på Azure Local och distribuera programmet till klustret.
  • Klona en programlagringsplats som innehåller programkällkoden och en i förväg skapad Docker Compose-fil som du kan använda i den här självstudien.

Kontrollera att du har skapat en klon av lagringsplatsen och ändrat kataloger till den klonade katalogen. Om du inte har slutfört de här stegen börjar du med Självstudie 1 – Skapa containeravbildningar.

Den här självstudien kräver att du kör Azure CLI version 2.0.53 eller senare. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.

Uppdatera ett program

I det här avsnittet beskrivs hur du gör en ändring i exempelprogrammet och sedan uppdaterar den version som redan har distribuerats till ditt AKS-kluster. Se till att befinna dig i den klonade azure-voting-app-redis-katalogen. Exempelprogrammets källkod finns sedan inuti katalogen azure-vote. Öppna filen config_file.cfg med en redigerare, till exempel Anteckningar:

notepad azure-vote/azure-vote/config_file.cfg

Ändra värdena för VOTE1VALUE och VOTE2VALUE till olika värden, till exempel färger. I följande exempel visas de uppdaterade värdena:

# UI Configurations
TITLE = 'Azure Voting App'
VOTE1VALUE = 'Blue'
VOTE2VALUE = 'Purple'
SHOWHOST = 'false'

Spara och stäng filen.

Uppdatera containeravbildningen

För att återskapa klientdelsavbildningen och testa det uppdaterade programmet använder du docker-compose. Argumentet --build används för att återskapa programbilden:

docker-compose up --build -d

Testa appen lokalt

För att kontrollera att den uppdaterade containeravbildningen visar dina ändringar öppnar du en lokal webbläsare till http://localhost:8080.

Skärmbild som visar ett exempel på den uppdaterade containeravbildningen Azure Voting App som körs lokalt öppnad i en lokal webbläsare

De uppdaterade värdena som anges i config_file.cfg visas i ditt program som körs.

Tagga och överföra avbildningen

Om du vill använda den uppdaterade avbildningen korrekt taggar du azure-vote-front-avbildningen med inloggningsservernamnet för din Azure Container Registry-instans. Hämta inloggningsservernamnet med kommandot az acr list:

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

Använd docker tag till att tagga avbildningen. Ersätt <acrLoginServer> med namnet på containerregistrets inloggningsserver eller det offentliga registrets värdnamn och uppdatera avbildningsversionen till v2 enligt följande:

docker tag mcr.microsoft.com/azuredocs/azure-vote-front:v1 <acrLoginServer>/azure-vote-front:v2

Använd nu docker push för att ladda upp avbildningen till registret. Ersätt <acrLoginServer> med ditt Azure Container Registry-inloggningsservernamn.

Kommentar

Om du har problem med att skicka till containerregistret kontrollerar du att du fortfarande är inloggad. Kör kommandot az acr login med namnet på ditt Azure Container Registry som du skapade i steget Skapa ett Azure Container Registry. Exempel: az acr login --name <azure container registry name>

docker push <acrLoginServer>/azure-vote-front:v2

Distribuera det uppdaterade programmet

För att ge maximal drifttid måste du köra flera instanser av programpodden. Kontrollera antalet klientdelsinstanser som körs med kommandot kubectl get pods:

$ kubectl get pods

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-217588096-5w632    1/1       Running   0          10m
azure-vote-front-233282510-b5pkz   1/1       Running   0          10m
azure-vote-front-233282510-dhrtr   1/1       Running   0          10m
azure-vote-front-233282510-pqbfk   1/1       Running   0          10m

Om du inte har flera klientdelspoddar skalar du azure-vote-front-distributionen på följande sätt:

kubectl scale --replicas=3 deployment/azure-vote-front

När du ska uppdatera programmet använder du kommandot kubectl set. Uppdatera <acrLoginServer> med inloggningsservern eller värdnamnet på ditt containerregister, och ange programversionen v2:

kubectl set image deployment azure-vote-front azure-vote-front=<acrLoginServer>/azure-vote-front:v2

Du övervakar distributionen med kommandot kubectl get pod. När det uppdaterade programmet distribueras avslutas dina poddar och skapas igen med den nya containeravbildningen:

kubectl get pods

Följande exempelutdata visar poddar som avslutas och nya instanser som körs medan distributionen pågår:

$ kubectl get pods

NAME                               READY     STATUS        RESTARTS   AGE
azure-vote-back-2978095810-gq9g0   1/1       Running       0          5m
azure-vote-front-1297194256-tpjlg  1/1       Running       0          1m
azure-vote-front-1297194256-tptnx  1/1       Running       0          5m
azure-vote-front-1297194256-zktw9  1/1       Terminating   0          1m

Testa det uppdaterade programmet

Om du vill visa det uppdaterade programmet hämtar du först den externa IP-adressen för tjänsten azure-vote-front:

kubectl get service azure-vote-front

Öppna sedan en webbläsare till IP-adressen för din tjänst:

Skärmbild som visar ett exempel på den uppdaterade avbildningen Azure Voting App som körs i ett Kubernetes-kluster som öppnas i en lokal webbläsare.

Nästa steg

I den här självstudien har du uppdaterat ett program och distribuerat den här uppdateringen till ditt Kubernetes-kluster. Du har lärt dig att:

  • Uppdatera klientdelens programkod
  • Skapa en uppdaterad containeravbildning
  • Överföra containeravbildningen till Azure Container Registry
  • Distribuera den uppdaterade containeravbildningen

Gå vidare till nästa självstudie för att lära dig hur du uppgraderar ett kluster till en ny version av Kubernetes.