Cvičení – řízení chování při restartování
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čí.
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).
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).
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)]