Kurz: Aktualizace aplikace ve službě Azure Kubernetes Service (AKS)

Aplikaci je možné po nasazení v Kubernetes aktualizovat zadáním nové image kontejneru nebo verze image. Aktualizace se připraví tak, aby se současně aktualizovala jenom čá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 se aplikace zabalila do image kontejneru. Tato image se nahrála do Azure Container Registry a vytvořili jste cluster AKS. Aplikace se pak nasadila do clusteru AKS.

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 úložiště a změnili adresáře na klonovaný adresář. Pokud jste tyto kroky nedokončili a chcete si je projít, začněte kurzem 1 – Vytváření imagí kontejnerů.

Tento kurz vyžaduje, abyste měli 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

Teď upravíme ukázkovou aplikaci a pak aktualizujeme verzi, která je už nasazená v clusteru AKS. Ujistěte se, že jste v naklonovaném 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 vi, otevřete soubor config_file.cfg:

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

Změňte hodnoty pro VOTE1VALUE a VOTE2VALUE na jiné 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. V visouboru použijte :wq.

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 znázorňující příklad aktualizované image kontejneru spuštěné místně otevřené aplikace Azure Voting v místním webovém prohlížeči

Aktualizované hodnoty zadané v souboru config_file.cfg se zobrazí ve 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 :v2 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 dochází k problémům s nasdílením změn do registru ACR, ujistěte se, že jste stále přihlášeni. Spusťte příkaz az acr login s názvem Azure Container Registry, který jste vytvořili v kroku Vytvoření Azure Container Registry. 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 několik 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 v2:

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ď otevřete webový prohlížeč a zobrazte IP adresu vaší služby:

Snímek obrazovky znázorňující příklad aktualizované image hlasovací aplikace Azure běžící v clusteru AKS otevřeného v místním webovém prohlížeči

Další kroky

V tomto kurzu jste aktualizovali aplikaci a tuto aktualizaci jste nasadí 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.