Kurz: Aktualizace aplikace v Azure Kubernetes Service v Azure Stack HCI

Aplikaci je možné po nasazení v Kubernetes aktualizovat zadáním nové image kontejneru nebo verze image. Aktualizace je nastavená tak, aby se ve stejnou dobu aktualizovala pouze část nasazení. Tato fázovaná aktualizace umožňuje, aby aplikace během aktualizace běžela. Poskytuje také mechanismus vrácení zpět pro případ, že dojde k selhání nasazení.

V tomto kurzu, který je šestou částí sedmidílné série, se aktualizuje aplikace Azure Vote. Získáte informace o těchto tématech:

  • Aktualizace kódu front-endu aplikace
  • Vytvoření aktualizované image kontejneru
  • Odeslání image kontejneru do služby Azure Container Registry
  • Nasazení aktualizované image kontejneru

Než začnete

V předchozích kurzech byla aplikace zabalena do image kontejneru. Tato image se nahrála do Azure Container Registry a vytvořili jste AKS v Azure Stack HCI clusteru. Aplikace se pak nasadila do clusteru.

Také se naklonovalo úložiště aplikace, které zahrnuje zdrojový kód aplikace, a předem se vytvořil soubor Docker Compose použitý v tomto kurzu. Ověřte, že jste vytvořili klon tohoto adresáře a změnili adresáře na klonovaný adresář. Pokud jste tyto kroky ještě neudělali a chcete postupovat s námi, začněte kurzem 1 – Vytváření imagí kontejneru.

Tento kurz vyžaduje použití Azure CLI verze 2.0.53 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Aktualizace aplikace

Pojďme provést změnu ukázkové aplikace a pak aktualizovat verzi, která je už nasazená do AKS v Azure Stack HCI clusteru. Ujistěte se, že jste v naklonované adresáři azure-voting-app-redis. Zdrojový kód ukázkové aplikace pak najdete v adresáři azure-vote. V editoru, jako je například , otevřete soubor config_file.cfg:

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

Změňte hodnoty pro VOTE1VALUE a VOTE2VALUE na různé hodnoty, například barvy. Následující příklad ukazuje aktualizované hodnoty:

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

Uložte soubor a zavřete ho.

Aktualizace image kontejneru

Pokud chcete znovu vytvořit image front-endu a otestovat aktualizovanou aplikaci, použijte příkaz docker-compose. Jako instrukce pro Docker Compose, že se má znovu vytvořit image aplikace, se použije argument --build:

docker-compose up --build -d

Test aplikace v místním prostředí

Pokud chcete ověřit, že se v aktualizované imagi kontejneru projevily provedené změny, otevřete místní webový prohlížeč a přejděte na adresu http://localhost:8080.

Snímek obrazovky s příkladem aktualizované image kontejneru– Hlasovací aplikace Azure spuštěná místně otevřená v místním webovém prohlížeči

Aktualizované hodnoty zadané v souboru config_file.cfg se zobrazí ve vaší spuštěné aplikaci.

Označení a odeslání image

Abyste mohli aktualizovanou image správně používat, označte image azure-vote-front pomocí názvu přihlašovacího serveru vašeho registru ACR. Název přihlašovacího serveru získáte pomocí příkazu az acr list:

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

K označení image použijte docker tag. Nahraďte <acrLoginServer> názvem přihlašovacího serveru ACR nebo názvem hostitele veřejného registru a aktualizujte verzi image na <acrLoginServer> následujícím způsobem:

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

Teď pomocí příkazu docker push nahrajte image do registru. Nahraďte <acrLoginServer> názvem přihlašovacího serveru ACR.

Poznámka

Pokud máte problémy s nasazování do registru ACR, ujistěte se, že jste stále přihlášení. Spusťte příkaz az acr login s použitím názvu Azure Container Registry, který jste vytvořili v kroku Azure Container Registry přihlášení. Například, az acr login --name <azure container registry name>.

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

Nasazení aktualizované aplikace

Aby bylo možné zajistit maximální dobu provozu, musí být spuštěno více instancí podu aplikace. Pomocí příkazu kubectl get pods ověřte počet spuštěných instancí front-endu:

$ 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

Pokud nemáte více front-endových podů, škálujte nasazení azure-vote-front následujícím způsobem:

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

K aktualizaci aplikace použijte příkaz kubectl set. Jako <acrLoginServer> použijte název přihlašovacího serveru nebo hostitele vašeho registru kontejneru a zadejte verzi aplikace <acrLoginServer>:

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

K monitorování nasazení použijte příkaz kubectl get pod. Při nasazení aktualizované aplikace se vaše pody ukončí a vytvoří se znovu s novou imagí kontejneru.

kubectl get pods

Následující příklad výstupu ukazuje ukončování podů a spouštění nových instancí v průběhu nasazení:

$ 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

Test aktualizované aplikace

Pokud chcete zobrazit aktualizovanou aplikaci, nejprve získejte externí IP adresu služby azure-vote-front:

kubectl get service azure-vote-front

Teď ve webovém prohlížeči otevřete IP adresu vaší služby:

Snímek obrazovky s příkladem aktualizované hlasovací aplikace Azure spuštěné v clusteru AKS otevřeném v místním webovém prohlížeči

Další kroky

V tomto kurzu jste aktualizovali aplikaci a tuto aktualizaci jste nasáli do clusteru AKS. Naučili jste se:

  • Aktualizace kódu front-endu aplikace
  • Vytvoření aktualizované image kontejneru
  • Odeslání image kontejneru do služby Azure Container Registry
  • Nasazení aktualizované image kontejneru

V dalším kurzu se dozvíte, jak upgradovat cluster AKS na novou verzi Kubernetes.