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
Azure CLI (versie 2.0.59 of een latere versie).
Het kubectl-hulpprogramma Kubectl van Kubernetes. Als u kubectl wilt installeren met behulp van Azure CLI, voert u de opdracht az aks install-cli uit.
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.
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.
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.
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:
Zoek en selecteer Kubernetes-services in Azure Portal.
Selecteer de naam van uw AKS-cluster.
Selecteer in het navigatiedeelvenster van de AKS-clusterpagina de optie Problemen vaststellen en oplossen.
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 .
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.