Konfigurace testů aktivity

Kontejnerizované aplikace se můžou spouštět po delší dobu, což vede k nefunkčním stavům, které mohou být potřeba opravit restartováním kontejneru. Služba Azure Container Instances podporuje sondy aktivity, abyste mohli nakonfigurovat kontejnery ve skupině kontejnerů tak, aby se restartoval, pokud nefunguje důležitá funkce. Sonda aktivity se chová jako sonda živé aktivity Kubernetes.

Tento článek vysvětluje, jak nasadit skupinu kontejnerů, která zahrnuje sondu aktivity, což demonstruje automatické restartování simulovaného kontejneru, který není v pořádku.

Služba Azure Container Instances také podporuje testy připravenosti, které můžete nakonfigurovat tak, aby se zajistilo, že provoz dosáhne kontejneru jenom v případě, že je pro něj připravený.

Nasazení YAML

Vytvořte liveness-probe.yaml soubor s následujícím fragmentem kódu. Tento soubor definuje skupinu kontejnerů, která se skládá z kontejneru NGINX, který nakonec není v pořádku.

apiVersion: 2019-12-01
location: eastus
name: livenesstest
properties:
  containers:
  - name: mycontainer
    properties:
      image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
      command:
        - "/bin/sh"
        - "-c"
        - "touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600"
      ports: []
      resources:
        requests:
          cpu: 1.0
          memoryInGB: 1.5
      livenessProbe:
        exec:
            command:
                - "cat"
                - "/tmp/healthy"
        periodSeconds: 5
  osType: Linux
  restartPolicy: Always
tags: null
type: Microsoft.ContainerInstance/containerGroups

Spuštěním následujícího příkazu nasaďte tuto skupinu kontejnerů s výše uvedenou konfigurací YAML:

az container create --resource-group myResourceGroup --name livenesstest -f liveness-probe.yaml

Spustit – příkaz

Nasazení zahrnuje command vlastnost definující spouštěcí příkaz, který se spustí při prvním spuštění kontejneru. Tato vlastnost přijímá pole řetězců. Tento příkaz simuluje kontejner, který zadává stav není v pořádku.

Nejprve spustí relaci Bash a vytvoří soubor volaný healthy v /tmp adresáři. Potom po dobu 30 sekund před odstraněním souboru přejde do režimu spánku po dobu 10 minut:

/bin/sh -c "touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600"

Příkaz Liveness

Toto nasazení definuje livenessProbe , který podporuje exec příkaz liveness, který funguje jako kontrola aktivity. Pokud tento příkaz ukončí nenulovou hodnotu, kontejner se ukončí a restartuje a signalizují healthy , že se soubor nepodařilo najít. Pokud se tento příkaz úspěšně ukončí s ukončovacím kódem 0, neprojde žádná akce.

Vlastnost periodSeconds určuje příkaz liveness by se měl spustit každých 5 sekund.

Ověření výstupu živé aktivity

Během prvních 30 sekund healthy existuje soubor vytvořený spouštěcím příkazem. Když příkaz liveness zkontroluje healthy existenci souboru, stavový kód vrátí hodnotu 0, signalizovat úspěch, takže nedojde k restartování.

Po 30 sekundách cat /tmp/healthy se příkaz začne selhávat, což způsobí, že dojde k nezdravým událostem a ukončení událostí.

Tyto události je možné zobrazit na webu Azure Portal nebo v Azure CLI.

Událost, která není v pořádku na portálu

Zobrazením událostí na webu Azure Portal se události typu Unhealthy aktivují při selhání příkazu liveness. Další událost je typu Killing, označuje odstranění kontejneru, aby restartování může začít. Počet restartování pro kontejner se zvýší pokaždé, když dojde k této události.

Restartování se dokončí na místě, takže se zachovají prostředky, jako jsou veřejné IP adresy a obsah specifický pro uzly.

Čítač restartování portálu

Pokud sonda aktivity nepřetržitě selže a aktivuje příliš mnoho restartování, váš kontejner zadá exponenciální zpoždění zpětného vypnutí.

Sondy aktivity a restartování zásad

Zásady restartování nahrazují chování při restartování aktivované sondami aktivity. Pokud například nastavíte sondu restartPolicy = Neverživé aktivity a sondu aktivity, skupina kontejnerů se nerestartuje z důvodu kontroly aktivity, která selhala. Skupina kontejnerů místo toho dodržuje zásady restartování skupiny kontejnerů .Never

Další kroky

Scénáře založené na úlohách můžou vyžadovat sondu aktivity, která povolí automatické restartování, pokud požadovaná funkce nefunguje správně. Další informace o spouštění kontejnerů založených na úlohách najdete v tématu Spouštění kontejnerizovaných úloh ve službě Azure Container Instances.