Cvičení – řízení chování při restartování

Dokončeno

Nasazení kontejnerů ve službě Azure Container Instances je jednoduché a rychlé. Proto je tato platforma skvělá pro úkoly, které se spouští jen jednou, jako je vykreslení obrázku, nebo sestavení a testování aplikací.

Konfigurovatelná zásada restartování umožňuje nastavit, aby se kontejnery po dokončení procesů zastavily. Instance kontejnerů se účtují po sekundách. Proto se vám účtují jenom výpočetní prostředky používané po dobu, kdy kontejner běží a provádí vaši úlohu.

Co jsou zásady restartování kontejneru?

Služba Azure Container Instances nabízí tři možnosti zásad restartování:

Zásada restartování Popis
Vždy Kontejnery ve skupině kontejnerů se restartují vždy. Tato zásada dává smysl pro dlouhotrvající úlohy, jako je webový server. Toto nastavení je výchozí , pokud při vytváření kontejneru není zadána žádná zásada restartování.
Nikdy Kontejnery ve skupině kontejnerů se nerestartují nikdy. Kontejnery se spouštějí jenom jednou.
OnFailure (Při chybě) Kontejnery ve skupině se restartují jen v případě, že proces spuštěný v kontejneru nebude úspěšný (když skončí nenulovým ukončovacím kódem). Kontejnery se spouštějí aspoň jednou. Tato zásada dobře funguje pro kontejnery, které provádějí krátkodobé úlohy.

Běh kontejneru do dokončení

Pokud chcete zobrazit zásadu restartování v akci, vytvořte instanci kontejneru z image kontejneru azuredocs/aci-wordcount a zadejte zásadu restartování OnFailure . Tento kontejner spustí skript v jazyce Python, který analyzuje text Shakespearova Hamleta, zapíše 10 nejčastěji používaných slov do standardního výstupu a pak skončí.

  1. Spuštěním tohoto az container create příkazu spusťte kontejner:

    az container create \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
      --restart-policy OnFailure \
      --location eastus
    

    Služba Azure Container Instances spustí kontejner a po skončení jeho procesu (v tomto případě skriptu) ho zastaví. Když Azure Container Instances zastaví kontejner, který má zásadu restartování nastavenu na Never (Nikdy) nebo OnFailure (Při chybě), nastaví se stav kontejneru na Terminated (Ukončeno).

  2. Spuštěním zkontrolujte az container show stav kontejneru:

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --query "containers[0].instanceView.currentState.state"
    

    Příkaz opakujte, dokud se nedosáhne stavu Terminated (Ukončeno).

  3. Spuštěním zobrazte az container logs protokoly kontejneru a prozkoumejte výstup:

    az container logs \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo
    

    Zobrazí se tento výstup:

    [('the', 990),
     ('and', 702),
     ('of', 628),
     ('to', 610),
     ('I', 544),
     ('you', 495),
     ('a', 453),
     ('my', 441),
     ('in', 399),
     ('HAMLET', 386)]