Problemen met de Azure Kubernetes Service in Azure Stack Hub oplossen
Overzicht van probleemoplossing
Het oplossen van problemen met Azure Kubernetes Service (AKS)-clusters verschilt in de meeste opzichten niet van het oplossen van problemen met de meeste Kubernetes-clusters. U vindt informatie op de Kubernetes-site Probleemoplossing. Een andere resource die nuttig kan zijn in Azure Stack Hub, zijn diagnostische instellingen die beschikbaar zijn op de azure Stack Hub-gebruikersportal van de AKS-clusterblade.
Op deze blade kunt u informatie verzamelen over:
- kube-apiserver
- kube-audit
- kube-audit-admin
- kube-controller-manager
- kube-scheduler
- AllMetrics
Logboeken van clusterknooppunten verzamelen
Als u problemen met een AKS-cluster wilt oplossen, moet u mogelijk logboeken rechtstreeks van de clusterknooppunten verzamelen. U kunt het script in de GitHub-opslagplaats msazurestackworkloads/azurestack-gallery gebruiken om logboeken van clusterknooppunten te verzamelen. Zonder deze scripts moet u verbinding maken met elk knooppunt in het cluster, de logboeken handmatig zoeken en downloaden.
De scripts zijn bedoeld om het verzamelen van relevante logboeken van uw Kubernetes-cluster te vereenvoudigen. Het script maakt automatisch een momentopname van het cluster en maakt verbinding met elk knooppunt om logboeken te verzamelen. Daarnaast kan het script optioneel de verzamelde logboeken uploaden naar een opslagaccount.
Dit hulpprogramma is ontworpen voor het ondersteuningsteam van Microsoft om uitgebreide clusterlogboeken te verzamelen.
Scriptvereisten
- Zorg ervoor dat de netwerkbeveiligingsgroep (NSG) voor besturingsvlakknooppunten SSH-poort 22 beschikbaar heeft gemaakt.
- Een computer die toegang heeft tot uw Kubernetes-cluster of dezelfde computer die u hebt gebruikt om uw cluster te implementeren. Voor Een Windows-computer installeert u Git Bash om bash-scripts uit te voeren.
- Azure CLI geïnstalleerd op de computer waarop het script wordt uitgevoerd. Zorg ervoor dat u zich vanaf de computer kunt aanmelden bij uw Azure Stack-omgeving
Azure CLI
. U vindt instructies op Azure CLI installeren in Azure Stack Hub over het installeren en configureren van Azure CLI voor het beheren van uw Azure Stack-cloud. - Schakel over naar het abonnement waarin het Kubernetes-cluster is geïmplementeerd met behulp van
az account set --subscription <Subscription ID>
. - Download de nieuwste versie van het script naar uw computer en pak de scripts uit.
Logboeken
Het script automatiseert het verzamelen van de volgende logboeken:
- Logboekbestanden in map
/var/log/azure/
- Logboekbestanden in map
/var/log/kubeaudit
(kube-auditlogboeken) - Logboekbestand
/var/log/waagent.log
(waagent) - Logboekbestand
/var/log/azure/deploy-script-dvm.log
(indien geïmplementeerd met behulp van het Kubernetes Cluster Marketplace-item van Azure Stack) - Statische manifesten in map
/etc/kubernetes/manifests
- Statische invoegtoepassingen in map
/etc/kubernetes/addons
- Waagent-logboeken
- metagegevens en logboeken van kube-system-containers
- kubelet-status en -logboek
- etcd-status en -logboek
- docker-status en -logboek
- containerstatus en logboek
- momentopname van kube-system
- Azure CNI-configuratiebestanden
- kubelet-configuratiebestanden
Er worden nog meer logboeken opgehaald voor Windows-knooppunten:
- Logboekbestand
c:\Azure\CustomDataSetupScript.log
- kube-proxystatus en logboek
- containerstatus en logboek
- azure-vnet-logboek en azure-vnet-telemetrielogboek
- ETW-gebeurtenissen voor docker
- ETW-gebeurtenissen voor Hyper-V
- Azure CNI-configuratiebestanden
Parameters
Parameter | Beschrijving | Vereist | Voorbeeld |
---|---|---|---|
-h, --help | Gebruik van de opdracht Afdrukken. | nee | |
-u,--gebruiker | De gebruikersnaam van de beheerder voor de cluster-VM's. | ja | azureuser (standaardwaarde) |
-i, --identity-file | Persoonlijke SA-sleutel gekoppeld aan de openbare sleutel die wordt gebruikt voor het maken van het Kubernetes-cluster (ook wel 'id_rsa' genoemd). | ja | /rsa.pem (Putty) ~/.ssh/id_rsa (SSH) |
-g, --resource-group | Kubernetes-clusterresourcegroep. Voor de clusters die door de AKS-service zijn gemaakt, volgt de naam van de beheerde resourcegroep het patroon 'MC_RESOURCEGROUP_CLUSTERNAME_LOCTION'. | ja | k8sresourcegroup MC_AKSRP_k8scluster1_redmond |
-n, --user-namespace | Verzamel logboeken van containers in de opgegeven naamruimten. Als dit niet is opgegeven, worden logboeken van ALLE naamruimten verzameld. | nee | bewaking |
--upload-logs | Hiermee worden opgehaalde logboeken in een Azure Stack Hub-opslagaccount bewaard. Logboeken vindt u in de resourcegroep KubernetesLogs. | nee | |
--api-model | Het bestand apimodel.json blijft behouden in een Azure Stack Hub Storage-account. Het uploaden van het bestand apimodel.json naar het opslagaccount vindt plaats wanneer de parameter --upload-logs ook is opgegeven. | nee | ./apimodel.json |
--disable-host-key-checking | Hiermee stelt u de optie StrictHostKeyChecking van SSH in op 'nee' terwijl het script wordt uitgevoerd. Alleen gebruiken in een veilige omgeving. | nee |
Voorbeelden
# switch to the subscription where the Kubernetes cluster is deployed.
az account set --subscription <Subscription ID>
# download the scripts.
mkdir -p $HOME/kuberneteslogs
cd $HOME/kuberneteslogs
curl -L https://github.com/msazurestackworkloads/azurestack-gallery/releases/download/diagnosis-v1.1.0/diagnosis-v1.1.0.tar.gz -o diagnosis.tar.gz
tar xvf diagnosis.tar.gz
# use the script to collect logs
./getkuberneteslogs.sh -u azureuser -i private.key.1.pem -g k8s-rg
./getkuberneteslogs.sh -u azureuser -i ~/.ssh/id_rsa -g k8s-rg --disable-host-key-checking
./getkuberneteslogs.sh -u azureuser -i ~/.ssh/id_rsa -g k8s-rg -n default -n monitoring
./getkuberneteslogs.sh -u azureuser -i ~/.ssh/id_rsa -g k8s-rg --upload-logs --api-model clusterDefinition.json
./getkuberneteslogs.sh -u azureuser -i ~/.ssh/id_rsa -g k8s-rg --upload-logs