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.

Diagnostische instellingen voor het verzamelen van Kubernetes-logboeken

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

Volgende stappen

Meer informatie over het gebruik van AKS in Azure Stack Hub