Felsöka AKS-motorn på Azure Stack Hub
Du kan få problem när du distribuerar eller arbetar med AKS-motorn på Azure Stack Hub. Den här artikeln beskriver stegen för att felsöka distributionen av AKS-motorn. Samla in information om AKS-motorn, samla in Kubernetes-loggar och granska felkoder för anpassade skripttillägg. Du kan också öppna ett GitHub-problem för AKS-motorn.
Anteckning
För AKSe version 0.75.3 och senare aks-engine
börjar kommandona nedan med aks-engine-azurestack
i stället aks-engine
för .
Felsöka installationen av AKS-motorn
Om dina tidigare installationssteg misslyckades kan du installera AKS-motorn med hjälp av GoFish-pakethanteraren. GoFish beskriver sig själv som en plattformsoberoende Homebrew.
Du hittar anvisningar för hur du använder GoFish för att installera AKS-motorn här.
Samla in nod- och klusterloggar
Du hittar anvisningarna för att samla in nod- och klusterloggar i Hämta nod- och klusterloggar.
Förutsättningar
Den här guiden förutsätter att du redan har laddat ned Azure CLI och AKS-motorn.
Den här guiden förutsätter också att du har distribuerat ett kluster med hjälp av AKS-motorn. Mer information finns i Distribuera ett Kubernetes-kluster med AKS-motorn på Azure Stack Hub .
Hämta loggar
Kommandot aks-engine get-logs
kan vara användbart för att felsöka problem med klustret. Kommandot skapar, samlar in och laddar ned en uppsättning filer till din arbetsstation. Filerna omfattar nodkonfiguration, klustertillstånd och konfiguration samt konfiguration av loggfiler.
På hög nivå: kommandot fungerar genom att upprätta en SSH-session i varje nod, köra ett loggsamlingsskript som samlar in och zippar relevanta filer och ladda ned .ZIP-filen till den lokala datorn.
SSH-autentisering
Du behöver en giltig privat SSH-nyckel för att upprätta en SSH-session till klustrets Linux-noder. Windows-autentiseringsuppgifter lagras i API-modellen och läses in därifrån. Ställ in windowsprofile.sshEnabled
på true för att aktivera SSH i dina Windows-noder.
Ladda upp loggar till en lagringskontocontainer
När klusterloggarna har hämtats kan AKS Engine spara dem på en Azure Storage-kontocontainer om valfri parameter --upload-sas-url
har angetts. AKS Engine förväntar sig att containernamnet ska ingå i den tillhandahållna SAS-URL:en. Det förväntade formatet är https://{blob-service-uri}/{container-name}?{sas-token}
.
Anteckning
Lagringskonton i anpassade moln som använder AD FS-identitetsprovidern stöds inte ännu.
Noder kan inte ansluta till klustret
Samlar som standard aks-engine get-logs
in loggar från noder som har anslutit till klustret. Om du vill samla in loggar från virtuella datorer som inte kunde ansluta till klustret anger du flaggan --vm-names
:
--vm-name k8s-pool-01,k8s-pool-02
Användning för aks-engine get-logs
Förutsatt att du har ett distribuerat kluster och den API-modell som ursprungligen användes för att distribuera klustret lagras på _output/<dnsPrefix>/apimodel.json
kan du samla in loggar som kör ett kommando som:
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
Parametrar
Parameter | Obligatoriskt | Beskrivning |
---|---|---|
--Plats | Ja | Azure-platsen för klustrets resursgrupp. |
--api-model | Ja | Sökväg till den genererade API-modellen för klustret. |
--ssh-host | Ja | FQDN, eller IP-adress, för en SSH-lyssnare som kan nå alla noder i klustret. |
--linux-ssh-private-key | Ja | Sökväg till en privat SSH-nyckel som kan användas för att skapa en fjärrsession på klustrets Linux-noder. |
--output-directory | Inga | Utdatakatalog, härledd från --api-model om den saknas. |
--control-plane-only | Inga | Samla endast in loggar från kontrollplansnoder. |
--vm-names | Inga | Samla endast in loggar från de angivna virtuella datorerna (kommaavgränsade namn). |
--upload-sas-url | Inga | SAS-URL för Azure Storage-konto för att ladda upp de insamlade loggarna. |
Granska felkoder för anpassat skripttillägg
AKS-motorn skapar ett skript för varje Ubuntu Server som en resurs för det anpassade skripttillägget (CSE) för att utföra distributionsuppgifter. Om skriptet genererar ett fel loggas ett fel i /var/log/azure/cluster-provision.log
. Felen visas i portalen. Felkoden kan vara till hjälp när du ska ta reda på problemet. Mer information om CSE-slutkoderna finns i cse_helpers.sh
.
Tillhandahålla Kubernetes-loggar till en Microsoft-supporttekniker
Om du fortfarande inte kan lösa problemet efter att ha samlat in och undersökt loggar kan du börja skapa ett supportärende och ange loggarna som du har samlat in.
Din operatör kan kombinera loggarna som du har skapat tillsammans med andra systemloggar som kan behövas av Microsofts support. Operatören kan göra dem tillgängliga för Microsoft.
Du kan ange Kubernetes-loggar på flera olika sätt:
- Du kan kontakta din Azure Stack Hub-operatör. Operatören använder informationen från loggarna som lagras i .ZIP-filen för att skapa supportäredet.
- Om du har SAS-URL:en för ett lagringskonto där du kan ladda upp Dina Kubernetes-loggar kan du inkludera följande kommando och flagga med SAS-URL:en för att spara loggarna till lagringskontot:
Anvisningar finns i Ladda upp loggar till en lagringskontocontainer.aks-engine get-logs -upload-sas-url <SAS-URL>
- Om du är molnoperatör kan du:
- Använd bladet Hjälp + support i administrationsportalen för Azure Stack Hub för att ladda upp loggar. Anvisningar finns i Skicka loggar nu med administratörsportalen.
- Använd PowerShell-cmdleten Get-AzureStackLog med hjälp av PEP (Privileged End Point) Mer information finns i Skicka loggar nu med PowerShell.
Öppna GitHub-problem
Om du inte kan lösa distributionsfelet kan du öppna ett GitHub-problem.
Öppna ett GitHub-problem i AKS-motorns lagringsplats.
Lägg till en rubrik med följande format: CSE-fel:
exit code <INSERT_YOUR_EXIT_CODE>
.Ta med följande information i problemet:
Klusterkonfigurationsfilen,
apimodel.json
, som används för att distribuera klustret. Ta bort alla hemligheter och nycklar innan du publicerar dem på GitHub.Utdata från följande kubectl-kommando
get nodes
.Innehållet i
/var/log/azure/cluster-provision.log
från en nod med feltillstånd.
Nästa steg
- Läs om AKS-motorn på Azure Stack Hub.