Delen via


Basisproblemen met het maken van een AKS-cluster oplossen

In dit artikel vindt u een overzicht van de basismethoden voor probleemoplossing als u geen AKS-cluster (Microsoft Azure Kubernetes Service) kunt maken of implementeren.

Voorwaarden

Fouten van Azure CLI weergeven

Als de bewerking mislukt wanneer u clusters probeert te maken met behulp van Azure CLI, wordt in de uitvoer foutinformatie weergegeven. Hier volgt een voorbeeld van een Azure CLI-opdracht en -uitvoer:

# Create a cluster specifying subnet

az aks create --resource-group myResourceGroup
--name MyManagedCluster \
--load-balancer-sku standard \
--vnet-subnet-id /subscriptions/<subscriptions-id>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/aks_demo_vnet/subnets/AKS

Voorbeeld van uitvoer:

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

U kunt de foutcode en het foutbericht uit de uitvoer identificeren. In dit geval zijn dit:

  • Foutcode: ControlPlaneAddOnsNotReady
  • Foutbericht: 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 beschrijvingen bevatten vaak details over wat er mis is gegaan bij het maken van het cluster en ze koppelen aan artikelen die nog meer details bevatten. Daarnaast kunt u onze artikelen over probleemoplossing gebruiken als referentie, op basis van de fouten die de Azure CLI-bewerking produceert.

Foutdetails weergeven in Azure Portal

Als u de fouten bij het maken van een AKS-cluster in Azure Portal wilt onderzoeken, opent u het activiteitenlogboek. U kunt de resultaten filteren op basis van uw behoeften. Hiervoor selecteert u Filter toevoegen om meer eigenschappen aan het filter toe te voegen.

Schermopname van het toevoegen van filter.

Zoek op de pagina Activiteitenlogboek logboekvermeldingen waarin de kolom Bewerkingsnaam het beheerde cluster maken of bijwerken weergeeft.

De gebeurtenis die is gestart door de kolom toont de gebruiker die de bewerking heeft uitgevoerd. Dit kan een werkaccount, een schoolaccount of een door Azure beheerde identiteit zijn.

Als de bewerking is geslaagd, wordt de waarde van de kolom Status geaccepteerd. 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 statuswaarde Geslaagd en wordt de gebeurtenis die door het veld is geïnitieerd, ingesteld op AzureContainerService.

Schermopname van de weergave in het activiteitenlogboek.

Wat gebeurt er als er in plaats daarvan een fout is opgetreden? In dat geval is de statuswaarde mislukt. In tegenstelling tot de bewerkingen voor het maken van clusteronderdelen, moet u de mislukte suboperation-vermeldingen uitvouwen om ze te controleren. Typische suboperation-namen zijn beleidsacties, zoals 'controle' beleidsactie en 'auditIfNotExists'-beleidsactie. Niet alle suboperaties mislukken noodzakelijkerwijs samen. U kunt verwachten dat sommige van deze slagen.

Selecteer een van de mislukte suboperaties om deze verder te onderzoeken. Selecteer de tabbladen Samenvatting, JSON en Geschiedenis wijzigen om het probleem op te lossen. Het tabblad JSON bevat de uitvoertekst voor de fout in JSON-indeling en biedt meestal de meest nuttige informatie.

Schermopname van het gedetailleerde logboek in JSON-indeling.

Hier volgt een voorbeeld van het gedetailleerde logboek in JSON-indeling:

{
     "status": {
        "value": "Failed",
        "localizedValue": "Failed"
    },
    "subStatus": {
        "value": "",
        "localizedValue": ""
    },
    "submissionTimestamp": "2024-08-30T10:06:07Z",
    "subscriptionId": "<subscriptionId>",
    "tenantId": "<tenantId>",
    "properties": {
        "statusMessage": "{\"status\":\"Failed\",\"error\":{\"code\":\"ResourceOperationFailure\",\"message\":\"The resource operation completed with terminal provisioning state 'Failed'.\",\"details\":[{\"code\":\"VMExtensionProvisioningError\",\"message\":\"Unable to establish outbound connection from agents, please see https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/error-code-outboundconnfailvmextensionerror and https://aka.ms/aks-required-ports-and-addresses for more information.\"}]}}",
}
}

Clusterinzichten weergeven

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

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

  2. Selecteer de naam van uw AKS-cluster.

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

  4. Selecteer op de pagina Problemen vaststellen en oplossen de koppeling Clusterinzichten . Het hulpprogramma voor clusterinzichten analyseert uw cluster en geeft vervolgens een lijst met de bevindingen in de sectie Observaties en oplossingen van de pagina Clusterinzichten .

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

Resources weergeven in Azure Portal

In Azure Portal wilt u mogelijk de resources weergeven die zijn gemaakt toen het cluster werd gebouwd. Deze resources bevinden zich doorgaans in een resourcegroep waarvan de naam begint in MC_. De resourcegroep van het beheerde cluster kan een naam hebben, zoals MC_MyResourceGroup_MyManagedCluster_<locatiecode>. De naam kan echter afwijken als u het cluster hebt gemaakt met behulp van een aangepaste clusterresourcegroep.

Als u de resourcegroep wilt zoeken, zoekt en selecteert u Resourcegroepen in Azure Portal en selecteert u vervolgens de resourcegroep waarin het cluster is gemaakt. De lijst met resources wordt weergegeven op de overzichtspagina van de resourcegroep.

Waarschuwing

Het is raadzaam om resources in de MC_ resourcegroep niet te wijzigen. Deze actie kan een negatieve invloed hebben op uw AKS-cluster.

Als u de status van een virtuele-machineschaalset wilt bekijken, kunt u de naam van de schaalset selecteren in de lijst met resources voor de resourcegroep. Het kan een naamwaarde 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 en meer details worden weergegeven in de kop Essentials. Als de implementatie mislukt is, is de weergegeven status Mislukt.

Voor alle resources kunt u details bekijken om een beter inzicht te krijgen in 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 de extensie 'vmssCSE'. Foutbericht: "Enable failed: failed to execute command: command terminated with exit status=50 [stdout] [stderr] 0 0 0 0 --:

Met deze informatie kunt u concluderen dat de VM's in de schaalset zijn mislukt en dat de afsluitstatus 50 is gegenereerd.

Notitie

Als de clusterimplementatie niet het punt bereikt waarop deze resources zouden zijn gemaakt, kunt u de resourcegroep van het beheerde cluster mogelijk niet controleren in Azure Portal.

Kubectl-opdrachten gebruiken

Gebruik kubectl-opdrachten voor meer informatie over de resources die in het cluster zijn geïmplementeerd, voor een andere optie voor het oplossen van fouten in uw cluster. Hiervoor 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 als uw cluster is gemaakt en wordt weergegeven in Azure Portal, moet u zich kunnen aanmelden en kubectl-opdrachten uitvoeren.

Clusterknooppunten weergeven (kubectl get nodes)

Als u de status van de clusterknooppunten wilt bepalen, bekijkt u de knooppunten door de opdracht uit te kubectl get nodes 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 kubectl get pods opdracht in:

$ 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 describe pod)

Door de status van de pods te beschrijven, kunt u de configuratiedetails en eventuele gebeurtenissen bekijken die op de pods zijn opgetreden. Voer de kubectl describe pods opdracht 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 Azure-feedbackcommunity.