Delen via


Kubernetes-gebeurtenissen gebruiken voor probleemoplossing in Azure Kubernetes Service (AKS)

In dit artikel leest u hoe u Kubernetes-gebeurtenissen gebruikt om problemen in uw AKS-clusters (Azure Kubernetes Service) te bewaken en op te lossen.

Wat zijn Kubernetes-gebeurtenissen?

Gebeurtenissen zijn een van de meest prominente bronnen voor het bewaken en oplossen van problemen in Kubernetes. Ze leggen informatie vast over de levenscyclus van verschillende Kubernetes-objecten, zoals pods, knooppunten, services en implementaties. Door gebeurtenissen te bewaken, kunt u inzicht krijgen in de activiteiten van uw cluster, problemen identificeren en problemen effectief oplossen.

Kubernetes-gebeurtenissen blijven niet behouden gedurende de levenscyclus van uw cluster, omdat er geen bewaarmechanisme is. Gebeurtenissen zijn slechts één uur beschikbaar nadat de gebeurtenis is gegenereerd. Als u gebeurtenissen gedurende een langere periode wilt opslaan, schakelt u Container Insights in.

Kubernetes-gebeurtenisobjecten

De volgende tabel bevat enkele belangrijke Kubernetes-gebeurtenisobjecten:

Veldnaam Beschrijving
type Het type is gebaseerd op de ernst van de gebeurtenis:
Waarschuwingen geven mogelijk problematische situaties aan, zoals een pod die herhaaldelijk mislukt of een knooppunt dat onvoldoende resources heeft. Ze vragen aandacht, maar leiden mogelijk niet tot onmiddellijke mislukking.
Normale gebeurtenissen vertegenwoordigen routinehandelingen, zoals een pod die gepland wordt of een implementatie opschalen. Ze geven meestal aan dat het cluster gezond functioneert.
reden De reden waarom de gebeurtenis is gegenereerd. Bijvoorbeeld FailedScheduling of CrashLoopBackoff.
message Een door mensen leesbaar bericht dat de gebeurtenis beschrijft.
namespace De naamruimte van het Kubernetes-object waaraan de gebeurtenis is gekoppeld.
firstSeen Tijdstempel toen de gebeurtenis voor het eerst werd waargenomen.
lastSeen Tijdstempel van het moment waarop de gebeurtenis voor het laatst is waargenomen.
rapportageController De naam van de controller die de gebeurtenis heeft gerapporteerd. Bijvoorbeeld: kubernetes.io/kubelet.
object De naam van het Kubernetes-object waaraan de gebeurtenis is gekoppeld.

Zie de officiële Kubernetes-documentatie voor meer informatie.

Kubernetes-gebeurtenissen weergeven

Geef alle gebeurtenissen in uw cluster weer met behulp van de kubectl get events opdracht.

Ervan uitgaande dat uw cluster al is gemaakt en beschikbaar is (vereisten per document), haalt u referenties op (let op: de --overwrite-existing vlag is ingesteld om kubeconfig-fouten te voorkomen):

az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --overwrite-existing

Vermeld nu alle gebeurtenissen in uw cluster:

kubectl get events

Resultaten:

LAST SEEN   TYPE      REASON              OBJECT                      MESSAGE
xxm         Normal    Scheduled           pod/my-pod-xxxxx            Successfully assigned default/my-pod-xxxxx to aks-nodepoolxx-xxxxxxx-vmss000000
xxm         Normal    Pulled              pod/my-pod-xxxxx            Container image "nginx" already present on machine
xxm         Normal    Created             pod/my-pod-xxxxx            Created container nginx
xxm         Normal    Started             pod/my-pod-xxxxx            Started container nginx
...

Bekijk de gebeurtenissen van een specifieke pod door eerst de naam van de pod te vinden en vervolgens de kubectl describe pod opdracht te gebruiken.

Toon de pods in de huidige namespace:

kubectl get pods

Resultaten:

NAME                             READY   STATUS    RESTARTS   AGE
my-pod-xxxxx                     1/1     Running   0          xxm
nginx-deployment-xxxxx           1/1     Running   0          xxm
...

Vervang <pod-name> hieronder door de werkelijke podnaam. Voor automatisering ziet u hier een voorbeeld voor de eerste pod in de lijst:

POD_NAME=$(kubectl get pods -o jsonpath="{.items[0].metadata.name}")
kubectl describe pod $POD_NAME

Voor het oplossen van problemen met gebeurtenissen: beste werkwijzen

Gebeurtenissen filteren op relevantie

Mogelijk hebt u verschillende naamruimten en services die worden uitgevoerd in uw AKS-cluster. Door gebeurtenissen te filteren op basis van objecttype, naamruimte of reden, kunnen de resultaten worden beperkt tot de meest relevante informatie.

U kunt bijvoorbeeld de volgende opdracht gebruiken om gebeurtenissen in de standaardnaamruimte te filteren:

kubectl get events --namespace default

Gebeurtenismeldingen automatiseren

Stel geautomatiseerde meldingen in om ervoor te zorgen dat kritieke gebeurtenissen in uw AKS-cluster tijdig worden gereageerd. Azure biedt integratie met bewakings- en waarschuwingsservices zoals Azure Monitor. U kunt waarschuwingen configureren om te activeren op basis van specifieke gebeurtenispatronen. Op deze manier bent u onmiddellijk op de hoogte van cruciale problemen die aandacht vereisen.

Regelmatig gebeurtenissen controleren

Zorg ervoor dat u regelmatig gebeurtenissen in uw AKS-cluster bekijkt. Deze proactieve benadering kan u helpen trends te identificeren, potentiële problemen vroeg te ondervangen en escalaties te voorkomen. Door op de hoogte te blijven van gebeurtenissen, kunt u de stabiliteit en prestaties van uw toepassingen behouden.

Volgende stappen

Nu u Inzicht hebt in Kubernetes-gebeurtenissen, kunt u doorgaan met uw bewakings- en waarneembaarheidstraject door Container Insights in te schakelen.