Eenvoudige probleemoplossing voor problemen met het maken van AKS-clusters

In dit artikel worden de basismethoden voor probleemoplossing beschreven die u kunt gebruiken als u geen Microsoft Azure Kubernetes Service-cluster (AKS) kunt maken of implementeren.

Vereisten

Fouten van Azure CLI weergeven

Wanneer u clusters maakt met behulp van Azure CLI, worden fouten vastgelegd als uitvoer als de bewerking mislukt. Een opdracht, gebruikersinvoer en bewerkingsuitvoer kunnen als volgt worden weergegeven in een Bash-console:

$ az aks create --resource-group myResourceGroup \
> --name MyManagedCluster \
> --load-balancer-sku standard \
> --vnet-subnet-id /subscriptions/01234567-89ab-cdef-0123-456789abcdef/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/aks_demo_vnet/subnets/AKS

It is highly recommended to use USER assigned identity (option --assign-identity) when you want to bring you own subnet, which will have no latency for the role assignment to take effect. When you SYSTEM assigned identity, azure-cli will grant Network Contributor role to the system assigned identity after the cluster is created, and the role assignment will take some time to take effect, see https://learn.microsoft.com/azure/aks/use-managed-identity, proceed to create cluster with system assigned identity? (y/N): y

(ControlPlaneAddOnsNotReady) Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj

Code: ControlPlaneAddOnsNotReady

Message: Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj

Deze fouten bevatten vaak gedetailleerde beschrijvingen van wat er fout is gegaan bij het maken van het cluster en bevatten koppelingen naar artikelen die meer details bevatten. Daarnaast kunt u onze artikelen over probleemoplossing gebruiken als referentie op basis van de fout die een Azure CLI-bewerking veroorzaakt.

Foutdetails weergeven in de Azure Portal

Bekijk het Azure-activiteitenlogboek om de details over fouten in de Azure Portal weer te geven. Als u de lijst met activiteitenlogboeken in de Azure Portal wilt vinden, zoekt u op Activiteitenlogboek. Of selecteer Meldingen (het belpictogram) en selecteer vervolgens Meer gebeurtenissen in het activiteitenlogboek.

De lijst met logboeken op de pagina Activiteitenlogboek bevat een regelvermelding waarin de kolomwaarde Bewerkingsnaam de naam Beheerd cluster maken of bijwerken heeft. De bijbehorende gebeurtenis die is geïnitieerd door de kolomwaarde, wordt ingesteld op de naam van uw werk- of schoolaccount. Als de bewerking is geslaagd, wordt in de kolomwaarde StatusGeaccepteerd weergegeven. U ziet ook suboperation-vermeldingen voor het maken van de clusteronderdelen, zoals de volgende bewerkingsnamen:

  • Routetabel maken of bijwerken
  • Netwerkbeveiligingsgroep maken of bijwerken
  • Door de gebruiker toegewezen identiteit bijwerken
  • Load Balancer maken of bijwerken
  • Openbaar IP-adres maken of bijwerken
  • Roltoewijzing maken
  • Resourcegroep bijwerken

In deze suboperation-vermeldingen is de waarde Statusgeslaagd en is het veld Gebeurtenis geïnitieerd door ingesteld op AzureContainerService.

Wat gebeurt er als er een fout is opgetreden? In dat geval wordt in het veld Status van de bewerking Beheerd cluster maken of bijwerkenMislukt weergegeven. In tegenstelling tot de bewerkingen voor het maken van clusteronderdelen, moet u hier de vermelding van de mislukte bewerking uitvouwen om de suboperation-vermeldingen te controleren. Typische suboperation-namen zijn beleidsacties, zoals de beleidsactie 'controleren' en 'auditIfNotExists' beleidsactie. Sommige suboperaties zullen blijven laten zien dat ze zijn geslaagd.

Als u dit verder wilt onderzoeken, kunt u een van de mislukte subbewerkingen selecteren. Er wordt een zijvenster geopend, zodat u meer informatie over de suboperation kunt bekijken. U kunt problemen met waarden oplossen voor velden zoals Samenvatting, JSON en Wijzigingsgeschiedenis. Het JSON-veld bevat de uitvoertekst voor de fout in JSON-indeling en biedt meestal de meest nuttige informatie.

Cluster-inzichten weergeven

Is het cluster gemaakt in de Azure Portal en is het daar zichtbaar? Als dit waar is, kunt u cluster-inzichten genereren die u helpen bij het oplossen van problemen. Voer de volgende stappen uit om toegang te krijgen tot deze functie:

  1. Zoek en selecteer Kubernetes-services in de Azure Portal.

  2. Selecteer de naam van uw AKS-cluster.

  3. Selecteer in het navigatiedeelvenster van de pagina AKS-cluster de optie Problemen vaststellen en oplossen.

  4. Selecteer op de pagina Problemen vaststellen en oplossen de koppeling Cluster insights . Het cluster insights-hulpprogramma analyseert uw cluster en geeft vervolgens een lijst met de resultaten ervan in de sectie Waarnemingen en oplossingen van de pagina Cluster insights .

  5. Selecteer een van de resultaten om meer informatie over een probleem en de mogelijke oplossingen ervan weer te geven.

Resources weergeven in de Azure Portal

In de Azure Portal wilt u mogelijk de resources bekijken die zijn gemaakt tijdens het bouwen van het cluster. Deze resources bevinden zich doorgaans in een resourcegroep die begint in MC_. De beheerde clusterresourcegroep kan een naam hebben, zoals MC_MyResourceGroup_MyManagedCluster_<location-code>. De naam kan echter afwijken als u het cluster hebt gebouwd met behulp van een aangepaste beheerde clusterresourcegroep.

Als u de resourcegroep wilt vinden, zoekt en selecteert u Resourcegroepen in de Azure Portal en selecteert u vervolgens de resourcegroep waarin het cluster is gemaakt. De resourcelijst wordt weergegeven op de pagina Overzicht van de resourcegroep.

Waarschuwing

We raden u aan resources in de MC_ resourcegroep niet te wijzigen. Deze actie kan ongewenste effecten veroorzaken op uw AKS-cluster.

Als u de status van een virtuele-machineschaalset wilt controleren, kunt u de naam van de schaalset selecteren in de lijst met resources voor de resourcegroep. Deze kan een naam hebben die lijkt op aks-nodepool1-12345678-vmss en de waarde Type van virtuele-machineschaalset. De status van de schaalset wordt boven aan de pagina Overzicht van de knooppuntgroep weergegeven. Meer details worden weergegeven in de kop Essentials. Als de implementatie is mislukt, is de weergegeven status Mislukt.

Voor alle resources kunt u details bekijken om een beter inzicht te krijgen in de reden waarom de implementatie is mislukt. Voor een schaalset kunt u de tekst Mislukte status selecteren om details over de fout weer te geven. De details bevinden zich in een rij met de kolommen Status, Niveau en Code . In het volgende voorbeeld ziet u een rij met kolomwaarden.

Kolom Voorbeeldwaarde
Status Inrichten is mislukt
Niveau Fout
Code ProvisioningState/failed/VMExtensionProvisioningError

Selecteer de rij om het veld Bericht weer te geven. Dit bevat nog meer informatie over die fout. Het veld Bericht voor de voorbeeldrij begint bijvoorbeeld in de volgende tekst:

Vm heeft een fout gerapporteerd bij het verwerken van extensie 'vmssCSE'. Foutbericht: 'Enable failed: failed to execute command: command terminated with exit status=50 [stdout] [stderr] 0 0 0 --:

Op basis van deze informatie kunt u concluderen dat de VM's in de schaalset zijn mislukt en de afsluitstatus 50 hebben gegenereerd.

Opmerking

Als de clusterimplementatie niet het punt heeft bereikt waarop deze resources zijn gemaakt, kunt u de beheerde clusterresourcegroep mogelijk niet controleren in de Azure Portal.

Kubectl-opdrachten gebruiken

Voor een andere optie voor het oplossen van fouten in uw cluster voert u kubectl-opdrachten in om meer informatie te krijgen over de resources die in het cluster zijn geïmplementeerd. Als u kubectl wilt gebruiken, meldt u zich eerst aan bij uw AKS-cluster:

az aks get-credentials --resource-group MyResourceGroup --name MyManagedCluster

Afhankelijk van het type fout en wanneer deze is opgetreden, kunt u zich mogelijk niet aanmelden bij uw cluster voor meer informatie. Maar over het algemeen moet u zich kunnen aanmelden en kubectl-opdrachten kunnen uitvoeren als uw cluster is gemaakt en wordt weergegeven in de Azure Portal.

Clusterknooppunten weergeven (kubectl get-knooppunten)

Voor meer informatie over het bepalen van de status van de knooppunten, bekijkt u de clusterknooppunten door de opdracht kubectl get nodes in te voeren. In dit voorbeeld worden er geen knooppunten gerapporteerd in het cluster:

$ kubectl get nodes

No resources found

Pods weergeven in de systeemnaamruimte (kubectl get pods)

Het weergeven van de pods in de kube-system-naamruimte is ook een goede manier om uw probleem op te lossen. Met deze methode kunt u de status van de Kubernetes-systeempods bekijken. In dit voorbeeld voeren we de opdracht in kubectl get pods :

$ kubectl get pods -n kube-system
NAME                                  READY   STATUS    RESTARTS   AGE
coredns-845757d86-7xjqb               0/1     Pending   0          78m
coredns-autoscaler-5f85dc856b-mxkrj   0/1     Pending   0          77m
konnectivity-agent-67f7f5554f-nsw2g   0/1     Pending   0          77m
konnectivity-agent-8686cb54fd-xlsgk   0/1     Pending   0          65m
metrics-server-6bc97b47f7-dfhbr       0/1     Pending   0          77m

De status van een pod beschrijven (kubectl beschrijf pod)

Door de status van de pods te beschrijven, kunt u de configuratiedetails en eventuele gebeurtenissen op de pods bekijken. Voer de opdracht kubectl describe pod uit:

$ kubectl describe pod coredns-845757d86-7xjqb -n kube-system
Name:                 coredns-845757d86-7xjqb
Namespace:            kube-system
Priority:             2000001000
Priority Class Name:  system-node-critical
Node:                 <none>
Labels:               k8s-app=kube-dns
                      kubernetes.io/cluster-service=true
                      pod-template-hash=845757d86
                      version=v20
...
Events:
  Type     Reason            Age                 From               Message
  ----     ------            ----                ----               -------
  Warning  FailedScheduling  24m (x1 over 25m)   default-scheduler  no nodes available to schedule pods
  Warning  FailedScheduling  29m (x57 over 84m)  default-scheduler  no nodes available to schedule pods

In de uitvoer van de opdracht ziet u dat de pod niet kan worden geïmplementeerd op een knooppunt omdat er geen knooppunten beschikbaar zijn.

Contacteer ons voor hulp

Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Feedback-community van Azure.