Dela via


(INAKTUELL) Uppdatera ett program i Kubernetes

Tips/Råd

Den uppdaterade versionen av den här självstudien som använder Azure Kubernetes Service finns i Självstudie: Uppdatera ett program i Azure Kubernetes Service (AKS).

Varning

Azure Container Service (ACS) håller på att tas ur bruk. Inga nya funktioner läggs till i ACS. Alla API:er, portalupplevelser, CLI-kommandon och dokumentation markeras som inaktuella.

År 2017 introducerade vi Azure Kubernetes Service (AKS) för att förenkla Kubernetes-hantering, distribution och åtgärder. Om du använder Kubernetes-orkestreraren ska du migrera till AKS senast den 31 januari 2020. Kom igång genom att läsa om att migrera till Azure Kubernetes Service.

Mer information finns i utfasningsmeddelandet för Azure Container Service på Azure.com.

När ett program har distribuerats i Kubernetes kan det uppdateras genom att ange en ny containeravbildning eller avbildningsversion. När du gör det mellanlagras uppdateringen 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. Den ger också en återställningsmekanism om ett fel inträffar under distributionen.

I den här guiden, del sex av sju, uppdateras exempelappen Azure Vote. Uppgifter som du slutför inkluderar:

  • Uppdatera klientdelens programkod
  • Skapa en uppdaterad containeravbildning
  • Skicka containeravbildningen till Azure Container Registry
  • Distribuera den uppdaterade containeravbildningen

I senare självstudier konfigureras Log Analytics för att övervaka Kubernetes-klustret.

Innan du börjar

I tidigare självstudier paketerades ett program i en containeravbildning, avbildningen laddades upp till Azure Container Registry och ett Kubernetes-kluster skapades. Programmet kördes sedan i Kubernetes-klustret.

En programlagringsplats klonades också som innehåller programmets källkod och en i förväg skapad Docker Compose-fil som används i den här självstudien. Kontrollera att du har skapat en klon av lagringsplatsen och att du har ändrat kataloger till den klonade katalogen. Inuti finns en katalog med namnet azure-vote och en fil med namnet docker-compose.yml.

Om du inte har slutfört de här stegen och vill följa med går du tillbaka till Självstudie 1 – Skapa containeravbildningar.

Uppdatera program

I den här självstudien görs en ändring i programmet och det uppdaterade programmet distribueras till Kubernetes-klustret.

Programmets källkod finns i azure-vote katalogen. config_file.cfg Öppna filen med valfri kod eller textredigerare. I det här exemplet vi används.

vi azure-vote/azure-vote/config_file.cfg

Ändra värdena för VOTE1VALUE och VOTE2VALUEoch och spara sedan filen.

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

Spara och stäng filen.

Uppdatera containeravbildning

Använd docker-compose för att återskapa klientdelsbilden och köra det uppdaterade programmet. Argumentet --build används för att instruera Docker Compose att återskapa programbilden.

docker-compose up --build -d

Testa programmet lokalt

Gå till https://localhost:8080 för att se det uppdaterade programmet.

Bild av Kubernetes-kluster i Azure

Tagga och skicka bilder

Tagga avbildningen azure-vote-front med loginServer för containerregistret.

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 ditt Azure Container Registry-inloggningsservernamn eller offentliga registervärdnamn. Observera också att avbildningsversionen har uppdaterats till redis-v2.

docker tag azure-vote-front <acrLoginServer>/azure-vote-front:redis-v2

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

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

Distribuera uppdateringsprogram

För att säkerställa maximal drifttid måste flera instanser av programkapseln köras. Verifiera den här konfigurationen med kommandot kubectl get pod .

kubectl get pod

Utdata:

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 poddar som kör bilden azure-vote-front, skala driftsättningen azure-vote-front.

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 för containerregistret.

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

Du övervakar distributionen med kommandot kubectl get pod. När det uppdaterade programmet distributioneras avslutas dina poddar och återskapas med den nya containerbilden.

kubectl get pod

Utdata:

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 uppdaterat program

Hämta tjänstens azure-vote-front externa IP-adress.

kubectl get service azure-vote-front

Bläddra till IP-adressen för att se det uppdaterade programmet.

Bild av Kubernetes-kluster i Azure

Nästa steg

I den här självstudien har du uppdaterat ett program och distribuerat uppdateringen till ett Kubernetes-kluster. Följande uppgifter slutfördes:

  • Programkoden för klientdelen har uppdaterats
  • Skapade en uppdaterad containeravbildning
  • Skickade containeravbildningen till Azure Container Registry
  • Distribuerade det uppdaterade programmet

Gå vidare till nästa handledning för att lära dig hur du övervakar Kubernetes genom Log Analytics.