Sdílet prostřednictvím


Řešení potíží s modulem AKS ve službě Azure Stack Hub

Při nasazování nebo práci s modulem AKS ve službě Azure Stack Hub může dojít k problému. Tento článek popisuje postup řešení potíží s nasazením modulu AKS. Shromážděte informace o modulu AKS, shromážděte protokoly Kubernetes a zkontrolujte kódy chyb rozšíření vlastních skriptů. Můžete také otevřít problém na GitHubu pro modul AKS.

Poznámka

Pro AKSe verze 0.75.3 a vyšší aks-engine budou následující příkazy začínat aks-engine-azurestack na místo aks-engine.

Řešení potíží s instalací modulu AKS

Pokud předchozí kroky instalace selhaly, můžete modul AKS nainstalovat pomocí správce balíčků GoFish. GoFish se popisuje jako multiplatformní Homebrew.

Pokyny k instalaci modulu AKS pomocí GoFish najdete tady.

Shromažďování protokolů uzlů a clusterů

Pokyny ke shromažďování protokolů uzlů a clusterů najdete v tématu Načítání protokolů uzlů a clusterů.

Požadavky

V této příručce se předpokládá, že jste si už stáhli Azure CLI a modul AKS.

Tato příručka také předpokládá, že jste nasadili cluster pomocí modulu AKS. Další informace najdete v tématu Nasazení clusteru Kubernetes s modulem AKS ve službě Azure Stack Hub .

Načítání protokolů

Příkaz aks-engine get-logs může být užitečný při řešení potíží s clusterem. Příkaz vytvoří, shromáždí a stáhne sadu souborů na pracovní stanici. Soubory zahrnují konfiguraci uzlu, stav a konfiguraci clusteru a nastavení souborů protokolu.

Na vysoké úrovni: Příkaz funguje tak, že v každém uzlu vytvoří relaci SSH, spustí skript shromažďování protokolů, který shromažďuje a zazipuje relevantní soubory, a stáhne .ZIP soubor do místního počítače.

Ověřování SSH

K navázání relace SSH k linuxovým uzlům clusteru budete potřebovat platný privátní klíč SSH. Přihlašovací údaje Windows jsou uložené v modelu rozhraní API a načtou se odtud. Pokud chcete povolit SSH v uzlech Windows, nastavte windowsprofile.sshEnabled na hodnotu true.

Nahrání protokolů do kontejneru účtu úložiště

Po úspěšném načtení protokolů clusteru je modul AKS může uložit do kontejneru účtu služby Azure Storage, pokud je nastavený volitelný parametr --upload-sas-url . Modul AKS očekává, že název kontejneru bude součástí zadané adresy URL SAS. Očekávaný formát je https://{blob-service-uri}/{container-name}?{sas-token}.

Poznámka

Účty úložiště ve vlastních cloudech, které používají zprostředkovatele identity služby AD FS, se zatím nepodporují.

Uzly se nemůžou připojit ke clusteru

Ve výchozím nastavení shromažďuje protokoly z uzlů, aks-engine get-logs které se úspěšně připojily ke clusteru. Pokud chcete shromažďovat protokoly z virtuálních počítačů, které se nemohly připojit ke clusteru, nastavte příznak :--vm-names

--vm-name k8s-pool-01,k8s-pool-02

Využití pro aks-engine get-logs

Za předpokladu, že máte nasazený cluster a model rozhraní API, který se původně použil k nasazení clusteru, je uložený na _output/<dnsPrefix>/apimodel.jsonadrese , můžete shromažďovat protokoly spuštěním příkazu, jako je:

aks-engine get-logs \
    --location <location> \
    --api-model _output/<dnsPrefix>/apimodel.json \
    --ssh-host <dnsPrefix>.<location>.cloudapp.azure.com \
    --linux-ssh-private-key ~/.ssh/id_rsa

Parametry

Parametr Povinné Popis
--Umístění Ano Umístění skupiny prostředků clusteru v Azure.
--api-model Ano Cesta k vygenerovanému modelu rozhraní API pro cluster
--ssh-host Ano Plně kvalifikovaný název domény (IP adresa) naslouchacího procesu SSH, který se může spojit se všemi uzly v clusteru.
--linux-ssh-private-key Ano Cesta k privátnímu klíči SSH, který se dá použít k vytvoření vzdálené relace na linuxových uzlech clusteru.
--output-directory Ne Výstupní adresář odvozený z --api-model , pokud chybí.
--Pouze řídicí rovina Ne Shromažďujte pouze protokoly z uzlů řídicí roviny.
--vm-names Ne Shromažďujte pouze protokoly ze zadaných virtuálních počítačů (názvy oddělené čárkami).
--upload-sas-url Ne Adresa URL SAS účtu služby Azure Storage pro nahrání shromážděných protokolů

Kontrola kódů chyb rozšíření vlastních skriptů

Modul AKS vytvoří skript pro každý Ubuntu Server jako prostředek pro rozšíření vlastních skriptů (CSE) k provádění úloh nasazení. Pokud skript vyvolá chybu, zapíše chybu do /var/log/azure/cluster-provision.logsouboru . Chyby se zobrazí na portálu. Kód chyby může být užitečný při zjišťování případu problému. Další informace o ukončovacích kódech CSE najdete v tématu cse_helpers.sh.

Poskytování protokolů Kubernetes technikovi podpory Microsoftu

Pokud ani po shromáždění a prozkoumání protokolů nemůžete problém vyřešit, možná budete chtít zahájit proces vytváření lístku podpory a poskytnout shromážděné protokoly.

Váš operátor může zkombinovat vytvořené protokoly spolu s dalšími systémovými protokoly, které může podpora Microsoftu potřebovat. Operátor je může zpřístupnit microsoftu.

Protokoly Kubernetes můžete poskytnout několika způsoby:

  • Můžete kontaktovat svého operátora služby Azure Stack Hub. Váš operátor použije informace z protokolů uložených v souboru .ZIP k vytvoření případu podpory.
  • Pokud máte adresu URL SAS pro účet úložiště, kam můžete nahrát protokoly Kubernetes, můžete zahrnout následující příkaz a označit příznakem s adresou URL SAS, aby se protokoly uložily do účtu úložiště:
    aks-engine get-logs -upload-sas-url <SAS-URL>
    
    Pokyny najdete v tématu Nahrání protokolů do kontejneru účtu úložiště.
  • Pokud jste operátor cloudu, můžete:

Problémy s otevřením GitHubu

Pokud se vám nedaří vyřešit chybu nasazení, můžete otevřít problém GitHubu.

  1. Otevřete problém GitHubu v úložišti modulu AKS.

  2. Přidejte název v následujícím formátu: Chyba CSE: exit code <INSERT_YOUR_EXIT_CODE>.

  3. Do problému uveďte následující informace:

    • Konfigurační soubor clusteru , apimodel.jsonkterý se používá k nasazení clusteru. Před publikováním na GitHub odeberte všechny tajné kódy a klíče.

    • Výstup následujícího příkazu get nodeskubectl .

    • Obsah z /var/log/azure/cluster-provision.log uzlu, který není v pořádku.

Další kroky