Ř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.json
adrese , 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.log
souboru . 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ě:
Pokyny najdete v tématu 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:
- K nahrání protokolů použijte okno Nápověda a podpora na portálu pro správu služby Azure Stack Hub. Pokyny najdete v tématu Odeslání protokolů pomocí portálu pro správu.
- Použijte rutinu PowerShellu Get-AzureStackLog s využitím privilegovaného koncového bodu (PEP). Pokyny najdete v tématu Odeslání protokolů 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 v následujícím formátu: Chyba CSE:
exit code <INSERT_YOUR_EXIT_CODE>
.Do problému uveďte následující informace:
Konfigurační soubor clusteru ,
apimodel.json
který 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 nodes
kubectl .Obsah z
/var/log/azure/cluster-provision.log
uzlu, který není v pořádku.
Další kroky
- Přečtěte si o modulu AKS ve službě Azure Stack Hub.