Ř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ě:
Pokyny naleznete v Nahrání protokolů do kontejneru účtu úložiště.aks-engine get-logs -upload-sas-url <SAS-URL>
- Pokud jste operátor cloudu, můžete:
- Použijte sekci Nápověda a podpora na portálu pro správu služby Azure Stack Hub k nahrání protokolů. Pokyny najdete v části Nyní odeslat protokoly prostřednictvím portálu pro správu.
- Pomocí rutiny PowerShellu Get-AzureStackLog využijte privilegovaný koncový bod (PEP). Pro pokyny viz Odeslat protokoly teď pomocí PowerShellu.
Problémy s otevřením GitHubu
Pokud se vám nedaří vyřešit chybu nasazení, můžete otevřít problém GitHubu.
Otevřete problém GitHubu v úložišti modulu AKS.
Přidejte název pomocí následujícího formátu: chyba CSE:
exit code <INSERT_YOUR_EXIT_CODE>
.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 kubectl
get nodes
.Obsah
/var/log/azure/cluster-provision.log
z uzlu, který není v pořádku.
Další kroky
- Přečtěte si o modulu AKS ve službě Azure Stack Hub.