Řešení potíží s aplikací typu kontejner
Kontrola protokolů a nastavení konfigurace Azure Container Apps může odhalit základní problémy, pokud se vaše aplikace kontejneru nechová správně. Následující průvodce vám pomůže najít a zobrazit podrobnosti o vaší aplikaci kontejneru.
Scénáře
Následující tabulka uvádí problémy, se kterými se můžete setkat při používání služby Azure Container Apps, a akce, které můžete provést při jejich řešení.
Scénář | Popis | Akce |
---|---|---|
Všechny scénáře | Zobrazení protokolů Použití diagnostiky a řešení problémů |
|
Chyba při nasazování nové revize | Při pokusu o nasazení nové revize se zobrazí chybová zpráva. | Ověření, že container Apps může vyžádat image kontejneru |
Zřizování trvá příliš dlouho | Po nasazení nové revize má nová revize stav Zřizování a stav Spuštěno zpracování na neomezenou dobu. | Ověření správné konfigurace sond stavu |
Revize je degradovaná. | Zřízení nové revize trvá déle než 10 minut. Nakonec má stav Zřizování zřízeno, ale stav Spuštěno se sníženým výkonem. Popis stavu Spuštění přečte Details: Deployment Progress Deadline Exceeded. 0/1 replicas ready. |
Ověření správné konfigurace sond stavu |
Selhání požadavků na koncové body | Koncový bod aplikace kontejneru nereaguje na požadavky. | Kontrola konfigurace příchozího přenosu dat |
Žádosti o návratový stav 403 | Koncový bod aplikace kontejneru reaguje na požadavky s chybou HTTP 403 (přístup byl odepřen). | Ověření správnosti konfigurace sítě |
Odpovědi ne podle očekávání | Koncový bod aplikace kontejneru reaguje na požadavky, ale odpovědi nejsou podle očekávání. | Ověření směrování provozu na správnou revizi Ověřte, že při nasazování imagí do registru kontejneru používáte jedinečné značky. |
Chyba chybějících parametrů | Při spouštění az containerapp příkazů v Azure CLI nebo spouštění rutin z Az.App modulu v Azure PowerShellu se zobrazí chybové zprávy o chybějících parametrech. |
Ověření instalace nejnovější verze rozšíření Azure Container Apps |
Funkce ve verzi Preview nejsou k dispozici | Funkce ve verzi Preview nejsou při spouštění az containerapp příkazů v Azure CLI k dispozici. |
Ověření, že rozšíření Azure Container Apps umožňuje funkce ve verzi Preview |
Odstranění aplikace nebo prostředí nefunguje | Tento problém často doprovází zpráva, například provisioningState: ScheduledForDelete. | Ruční odstranění přidružené virtuální sítě |
Zobrazení protokolů
Jedním z prvních kroků, které je potřeba provést při hledání problémů s aplikací kontejneru, je zobrazení zpráv protokolu. Můžete zobrazit výstup protokolů konzoly i systému. Protokol konzoly vaší aplikace kontejneru zachycuje datové stdout
proudy a stderr
datové proudy aplikace. Container Apps generuje systémové protokoly pro události na úrovni služby.
- Přihlaste se k portálu Azure.
- Na panelu hledání zadejte název vaší aplikace kontejneru.
- V části Prostředky vyberte název vaší aplikace kontejneru.
- Na navigačním panelu rozbalte možnost Monitorování a vyberte Stream protokolu (nikoli Protokoly).
- Pokud se na stránce streamu protokolu zobrazuje, že tato revize je škálovaná na nulu, vyberte tlačítko Přejít na Správu revizí. Nasaďte novou revizi škálovanou na minimální počet replik 1. Další informace najdete v tématu Škálování v Azure Container Apps.
- Na stránce Stream protokolu nastavte protokoly na konzolu nebo systém.
Použití nástroje pro diagnostiku a řešení problémů
Pomocí nástroje pro diagnostiku a řešení problémů můžete najít problémy se stavem, konfigurací a výkonem vaší aplikace kontejneru.
- Přihlaste se k portálu Azure.
- Na panelu hledání zadejte název vaší aplikace kontejneru.
- V části Prostředky vyberte název vaší aplikace kontejneru.
- Na navigačním panelu vyberte Diagnostikovat a řešit problémy.
- Na stránce Diagnostika a řešení problémů vyberte jednu z kategorií Řešení potíží.
- Vyberte jednu z kategorií na navigačním panelu a najděte způsoby, jak vyřešit problémy s vaší aplikací kontejneru.
Ověření přístupnosti image kontejneru
Pokud se při pokusu o nasazení nové revize zobrazí chybová zpráva, ověřte, že container Apps dokáže vyžádat image kontejneru.
- Ujistěte se, že brána firewall prostředí kontejneru neblokuje přístup k registru kontejneru. Další informace najdete v tématu Řízení odchozího provozu pomocí tras definovaných uživatelem.
- Pokud vaše stávající virtuální síť používá místo výchozího serveru DNS poskytnutého Azure vlastní server DNS, ověřte, že je váš server DNS správně nakonfigurovaný a že vyhledávání DNS registru kontejneru se nezdaří. Další informace najdete v tématu DNS.
- Pokud jste k vygenerování image kontejneru použili funkci sestavení v cloudu Container Apps (viz cesta kódu do cloudu pro Azure Container Apps, vaše image není veřejně přístupná, takže se tato část nepoužije.
V případě kontejneru Dockeru, který může běžet jako konzolová aplikace, ověřte, že je vaše image veřejně přístupná spuštěním následujícího příkazu na příkazovém řádku se zvýšenými oprávněními. Před spuštěním tohoto příkazu nahraďte zástupné symboly ohraničené <>
hodnotami.
docker run --rm <YOUR_CONTAINER_IMAGE>
Ověřte, že Docker spouští vaši image bez nahlášení chyb. Pokud používáte Docker ve Windows, ujistěte se, že máte spuštěný modul Dockeru.
Pokud obrázek není veřejně přístupný, může se zobrazit následující chyba.
docker: Error response from daemon: pull access denied for <YOUR_CONTAINER_IMAGE>, repository does not exist or may require 'docker login': denied: requested access to the resource is denied. See 'docker run --help'.
Další informace najdete v tématu Sítě v prostředí Azure Container Apps.
Kontrola konfigurace příchozího přenosu dat
Nastavení příchozího přenosu dat vaší aplikace kontejneru se vynucuje prostřednictvím sady pravidel, která řídí směrování externího a interního provozu do vaší aplikace kontejneru. Pokud se nemůžete připojit ke své aplikaci kontejneru, zkontrolujte tato nastavení příchozího přenosu dat a ujistěte se, že nastavení příchozího přenosu dat neblokuje požadavky.
- Přihlaste se k portálu Azure.
- Na panelu hledání zadejte název vaší aplikace kontejneru.
- V části Prostředky vyberte název vaší aplikace kontejneru.
- Na navigačním panelu rozbalte Nastavení a vyberte Příchozí přenos dat.
Problém | Akce |
---|---|
Je povolený příchozí přenos dat? | Ověřte, že je zaškrtnuté políčko Povoleno . |
Chcete povolit externí příchozí přenos dat? | Ověřte, že je příchozí přenos dat nastavený na Příjem provozu odkudkoli. Pokud vaše aplikace kontejneru neposlouchá provoz HTTP, nastavte příchozí provoz na Hodnotu Omezený na prostředí Container Apps. |
Používá váš klient pro přístup k vaší aplikaci kontejneru protokol HTTP nebo TCP? | Ověřte, že je typ příchozího přenosu dat nastavený na správný protokol (HTTP nebo TCP). |
Podporuje váš klient mTLS? | Ověřte, že je režim klientského certifikátu nastavený na Vyžadovat pouze v případě, že klient podporuje mTLS. Další informace najdete v tématu konfigurace ověřování klientských certifikátů. |
Používá váš klient protokol HTTP/1 nebo HTTP/2? | Ověřte , že je přenos nastavený na správnou verzi HTTP (HTTP/1 nebo HTTP/2). |
Je cílový port správně nastavený? | Ověřte , že cílový port je nastavený na stejný port , na který vaše aplikace kontejneru naslouchá, nebo stejný port vystavený souborem Dockerfile vaší aplikace kontejneru. |
Je IP adresa vašeho klienta odepřena? | Pokud režim omezení zabezpečení PROTOKOLU IP není nastavený na Povolit veškerý provoz, ověřte, že váš klient nemá IP adresu, která je odepřena. |
Další informace najdete v tématu Příchozí přenos dat v Azure Container Apps.
Ověření konfigurace sítě
Rekurzivní překladače Azure k překladu požadavků používá IP adresu 168.63.129.16
.
- Pokud vaše virtuální síť používá místo výchozího serveru DNS poskytnutého Azure vlastní server DNS, nakonfigurujte server DNS tak, aby předával nevyřešené dotazy DNS .
168.63.129.16
- Při konfiguraci skupiny zabezpečení sítě nebo brány firewall neblokujte
168.63.129.16
adresu.
Další informace najdete v tématu Sítě v prostředí Azure Container Apps.
Ověření konfigurace sond stavu
U všechtypůch
- Přihlaste se k portálu Azure.
- Na panelu hledání zadejte název vaší aplikace kontejneru.
- V části Prostředky vyberte název vaší aplikace kontejneru.
- Na navigačním panelu rozbalte položku Aplikace a vyberte Kontejnery.
- Na stránce Kontejnery vyberte Sondy stavu.
- Rozbalte sondy živé aktivity, testy připravenosti a spouštěcí testy.
- Pro každou sondu ověřte správnost hodnoty portu .
Hodnoty portu aktualizujte následujícím způsobem:
- Výběrem možnosti Upravit a nasadit vytvořte novou revizi.
- Na stránce Vytvořit a nasadit novou revizi zaškrtněte políčko vedle image kontejneru a vyberte Upravit.
- V okně Upravit kontejner vyberte Sondy stavu.
- Rozbalte sondy živé aktivity, testy připravenosti a spouštěcí testy.
- Pro každou sondu upravte hodnotu portu .
- Vyberte tlačítko Uložit.
- Na stránce Vytvořit a nasadit novou revizi vyberte tlačítko Vytvořit.
Konfigurace sond stavu pro delší dobu spuštění
Pokud je povolený příchozí přenos dat, následující výchozí testy se automaticky přidají do hlavního kontejneru aplikace, pokud pro každý typ není definován žádný.
Tady jsou výchozí hodnoty pro každý typ sondy.
Vlastnost | Spuštění | Připravenost | Životnost |
---|---|---|---|
Protokol | TCP | TCP | TCP |
Port | Cílový port příchozího přenosu dat | Cílový port příchozího přenosu dat | Cílový port příchozího přenosu dat |
Timeout | 3 sekundy | 5 sekund | Není k dispozici |
Období | 1 sekunda | 5 sekund | Není k dispozici |
Počáteční zpoždění | 1 sekunda | 3 sekundy | Není k dispozici |
Prahová hodnota úspěchu | 1 | 1 | Není k dispozici |
Prahová hodnota selhání | 240 | 48 | Není k dispozici |
Pokud spuštění vaší aplikace kontejneru trvá delší dobu (což je běžné v Javě), možná budete muset přizpůsobit vlastnost liveness a readiness probe Initial delay seconds odpovídajícím způsobem. Můžete zobrazit protokoly, abyste viděli typický čas spuštění vaší aplikace kontejneru.
- Přihlaste se k portálu Azure.
- Na panelu hledání zadejte název vaší aplikace kontejneru.
- V části Prostředky vyberte název vaší aplikace kontejneru.
- Na navigačním panelu rozbalte položku Aplikace a vyberte Kontejnery.
- Na stránce Kontejnery vyberte Sondy stavu.
- Výběrem možnosti Upravit a nasadit vytvořte novou revizi.
- Na stránce Vytvořit a nasadit novou revizi zaškrtněte políčko vedle image kontejneru a vyberte Upravit.
- V okně Upravit kontejner vyberte Sondy stavu.
- Rozbalte sondy živé aktivity.
- Pokud je vybrána možnost Povolit sondy aktivity, zvyšte hodnotu pro sekundy počátečního zpoždění.
- Rozbalte testy připravenosti.
- Pokud je vybrána možnost Povolit testy připravenosti, zvyšte hodnotu pro sekundy počátečního zpoždění.
- Zvolte Uložit.
- Na stránce Vytvořit a nasadit novou revizi vyberte tlačítko Vytvořit.
Pak můžete zobrazit protokoly a zjistit, jestli se vaše aplikace kontejneru úspěšně spustí.
Další informace najdete v tématu Použití sond stavu.
Ověření směrování provozu na správnou revizi
Pokud se vaše aplikace typu kontejner nechová podle očekávání, může být problém tím, že požadavky se směrují na zastaralou revizi.
- Přihlaste se k portálu Azure.
- Na panelu hledání zadejte název vaší aplikace kontejneru.
- V části Prostředky vyberte název vaší aplikace kontejneru.
- Na navigačním panelu rozbalte položku Aplikace a vyberte Revize.
Pokud je režim revize nastavený na Single
, veškerý provoz se ve výchozím nastavení směruje na nejnovější revizi. Karta Aktivní revize by měla obsahovat pouze jednu revizi s hodnotou Traffic (Provoz).100%
Pokud je režim revize nastavený na Multiple
, ověřte, že nesměrujete provoz do zastaralých revizí.
Další informace o konfiguraci rozdělení provozu najdete v tématu Rozdělení provozu v Azure Container Apps.
Ověření instalace nejnovější verze rozšíření Azure Container Apps
Pokud se při spouštění az containerapp
příkazů v Azure CLI nebo rutinách Az.App
z modulu v Azure PowerShellu zobrazí chyby týkající se chybějících parametrů, ujistěte se, že máte nainstalovanou nejnovější verzi rozšíření Azure Container Apps.
az extension add --name containerapp --upgrade
Ověření, že rozšíření Azure Container Apps umožňuje funkce ve verzi Preview
Pokud funkce preview nejsou při spouštění az containerapp
příkazů v Azure CLI dostupné, povolte funkce preview v rozšíření Azure Container Apps.
az extension add --name containerapp --upgrade --allow-preview true
Ruční odstranění virtuální sítě používané prostředím Azure Container Apps
Pokud se zobrazí zpráva provisioningState: ScheduledForDelete, ale vaše prostředí ve skutečnosti neodstraní, nezapomeňte přidruženou virtuální síť odstranit ručně.
Identifikujte virtuální síť používanou prostředím, které se pokoušíte odstranit. <Zástupné symboly> nahraďte hodnotami.
az containerapp env show --resource-group <RESOURCE_GROUP> --name <ENVIRONMENT>
Ve výstupu vyhledejte
infrastructureSubnetId
a poznamenejte si ID virtuální sítě. Příkladem ID virtuální sítě jevNet::myVNet.id
.Odstraňte virtuální síť ručně:
az network vnet delete --resource-group <RESOURCE_GROUP> --name <VNET_ID>
Odstraňte prostředí Azure Container Apps:
az containerapp env delete --resource-group <RESOURCE_GROUP> --name <ENVIRONMENT> --yes