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 kroky pro řešení potíží s nasazením modulu AKS. Shromážděte informace o vašem engine AKS, protokoly Kubernetes a zkontrolujte kódy chyb rozšíření vlastních skriptů. Můžete také otevřít problém GitHubu pro modul AKS.

Poznámka

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

Řešení problémů s instalací stroje AKS

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

Zde najdete pokyny k instalaci modulu AKS pomocí GoFish.

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

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

Požadavky

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

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

Načítání protokolů

Příkaz aks-engine get-logs může být užitečný k řešení problémů s clusterem. Příkaz vytvoří, shromáždí a stáhne sadu souborů do pracovní stanice. Mezi tyto soubory patří konfigurace uzlu, stav clusteru a konfigurace a nastavení souborů protokolu.

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

Ověřování SSH

K navázání relace SSH k uzlům s Linuxem clusteru budete potřebovat platný privátní klíč SSH. Přihlašovací údaje windows se ukládají v modelu rozhraní API a načtou se odtud. Nastavte windowsprofile.sshEnabled na true a povolte SSH v uzlech Windows.

Nahrání protokolů do kontejneru úložného účtu

Po úspěšném načtení protokolů clusteru je modul AKS může uložit do kontejneru účtu úložiště Azure, 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ě na vlastních cloudech, které používají zprostředkovatele identity AD FS, nejsou zatím podporovány.

Uzly se nemůžou připojit ke clusteru

Ve výchozím nastavení aks-engine get-logs shromažďuje protokoly z uzlů, 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

Použití pro aks-engine get-logs

Za předpokladu, že máte nasazený cluster a model rozhraní API původně použitý k nasazení clusteru je uložený v _output/<dnsPrefix>/apimodel.json, pak můžete shromáždit protokoly, které spouští příkaz, například:

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

parametru 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 nebo IP adresa SSH posluchače, který dosáhne na všechny 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 v uzlech s Linuxem clusteru.
--output-directory Ne Výstupní adresář odvozený z --api-model, pokud chybí.
--control-plane-only (pouze řídicí rovina) Ne Shromážděte pouze protokoly z uzlů řídicí roviny.
--vm-names Ne Shromážděte 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ů

Motor AKS vytvoří skript pro každý Ubuntu server jako prostředek pro rozšíření uživatelských skriptů (CSE) pro provádění nasazení úloh. Pokud skript vyvolá chybu, protokoluje chybu v /var/log/azure/cluster-provision.log. Chyby se zobrazují 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 části cse_helpers.sh.

Poskytování protokolů Kubernetes technikovi podpory Microsoftu

Pokud po shromáždění a prozkoumání protokolů stále nemůžete problém vyřešit, možná budete chtít zahájit proces vytvoření lístku podpory a zadat protokoly, které jste shromáždili.

Váš operátor může zkombinovat protokoly, které jste vytvořili, spolu s dalšími systémovými protokoly, které můžou potřebovat podpora Microsoftu. Operátor je může zpřístupnit společnosti Microsoft.

Protokoly Kubernetes můžete získat několika způsoby:

  • Můžete kontaktovat operátora služby Azure Stack Hub. Váš operátor používá 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ě, kde můžete nahrát protokoly Kubernetes, můžete zahrnout následující příkaz a příznak s adresou URL SAS a uložit protokoly do účtu úložiště:
    aks-engine get-logs -upload-sas-url <SAS-URL>
    
    Pokyny naleznete v 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 pomocí následujícího formátu: chyba CSE: exit code <INSERT_YOUR_EXIT_CODE>.

  3. Uveďte v problému následující informace:

    • Konfigurační soubor clusteru apimodel.json, který se používá k nasazení clusteru. Před publikováním všech tajných kódů a klíčů na GitHubu odeberte všechny tajné kódy a klíče.

    • Výstup následujícího příkazu kubectlget nodes.

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

Další kroky