Schnellstart: Abonnieren von Azure Kubernetes Service- (AKS) Ereignissen mit Azure Event Grid

Azure Event Grid ist ein vollständig verwalteter Dienst für das Ereignisrouting, der eine einheitliche Ereignisnutzung mithilfe eines Veröffentlichen/Abonnieren-Modells bereitstellt.

In dieser Schnellstartanleitung erstellen Sie einen AKS-Cluster und abonnieren AKS-Ereignisse.

Voraussetzungen

Hinweis

Falls insbesondere bei EventGrid-Benachrichtigungen Probleme auftreten, wie unter Dienstausfälle beschrieben, beachten Sie bitte, dass AKS-Vorgänge nicht betroffen und unabhängig von Event Grid-Ausfällen sind.

Erstellen eines AKS-Clusters

Erstellen Sie mit dem Befehl az aks create einen AKS-Cluster. Im folgenden Beispiel werden eine Ressourcengruppe mit dem Namen MyResourceGroup und ein Cluster mit dem Namen MyAKS mit einem Knoten in der Ressourcengruppe MyResourceGroup erstellt:

az group create --name MyResourceGroup --location eastus
az aks create -g MyResourceGroup -n MyAKS --location eastus  --node-count 1 --generate-ssh-keys

Abonnieren von AKS-Ereignissen

Erstellen Sie mit az eventhubs namespace create und az eventhubs eventhub create einen Namespace und einen Event Hub. Im folgenden Beispiel wird ein Namespace mit dem Namen MyNamespace und ein Event-Hub mit dem Namen MyEventGridHub in MyNamespace erstellt, die beide in der Ressourcengruppe MyResourceGroup enthalten sind.

az eventhubs namespace create --location eastus --name MyNamespace -g MyResourceGroup
az eventhubs eventhub create --name MyEventGridHub --namespace-name MyNamespace -g MyResourceGroup

Hinweis

Der Name Ihres Namespace muss eindeutig sein.

Abonnieren Sie die AKS-Ereignisse mit az eventgrid event-subscription create:

SOURCE_RESOURCE_ID=$(az aks show -g MyResourceGroup -n MyAKS --query id --output tsv)
ENDPOINT=$(az eventhubs eventhub show -g MyResourceGroup -n MyEventGridHub --namespace-name MyNamespace --query id --output tsv)
az eventgrid event-subscription create --name MyEventGridSubscription \
--source-resource-id $SOURCE_RESOURCE_ID \
--endpoint-type eventhub \
--endpoint $ENDPOINT

Überprüfen Sie Ihr Abonnement für AKS-Ereignisse mit az eventgrid event-subscription list:

az eventgrid event-subscription list --source-resource-id $SOURCE_RESOURCE_ID

Die folgende Beispielausgabe zeigt, dass Sie Ereignisse aus dem MyAKS-Cluster abonniert haben und diese Ereignisse an den Event Hub MyEventGridHub übermittelt werden:

[
  {
    "deadLetterDestination": null,
    "deadLetterWithResourceIdentity": null,
    "deliveryWithResourceIdentity": null,
    "destination": {
      "deliveryAttributeMappings": null,
      "endpointType": "EventHub",
      "resourceId": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/MyResourceGroup/providers/Microsoft.EventHub/namespaces/MyNamespace/eventhubs/MyEventGridHub"
    },
    "eventDeliverySchema": "EventGridSchema",
    "expirationTimeUtc": null,
    "filter": {
      "advancedFilters": null,
      "enableAdvancedFilteringOnArrays": null,
      "includedEventTypes": [
        "Microsoft.ContainerService.NewKubernetesVersionAvailable","Microsoft.ContainerService.ClusterSupportEnded","Microsoft.ContainerService.ClusterSupportEnding","Microsoft.ContainerService.NodePoolRollingFailed","Microsoft.ContainerService.NodePoolRollingStarted","Microsoft.ContainerService.NodePoolRollingSucceeded"
      ],
      "isSubjectCaseSensitive": null,
      "subjectBeginsWith": "",
      "subjectEndsWith": ""
    },
    "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/MyResourceGroup/providers/Microsoft.ContainerService/managedClusters/MyAKS/providers/Microsoft.EventGrid/eventSubscriptions/MyEventGridSubscription",
    "labels": null,
    "name": "MyEventGridSubscription",
    "provisioningState": "Succeeded",
    "resourceGroup": "MyResourceGroup",
    "retryPolicy": {
      "eventTimeToLiveInMinutes": 1440,
      "maxDeliveryAttempts": 30
    },
    "systemData": null,
    "topic": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/MyResourceGroup/providers/microsoft.containerservice/managedclusters/MyAKS",
    "type": "Microsoft.EventGrid/eventSubscriptions"
  }
]

Wenn AKS-Ereignisse auftreten, werden diese Ereignisse in Ihrem Event Hub angezeigt. Wenn sich beispielsweise die Liste der verfügbaren Kubernetes-Versionen für Ihre Cluster ändert, wird ein Microsoft.ContainerService.NewKubernetesVersionAvailable-Ereignis angezeigt. Es sind jetzt auch neue Ereignisse für unterstützte Upgrades und Cluster verfügbar. Weitere Informationen zu den Ereignissen, die AKS ausgibt, finden Sie unter Azure Kubernetes Service (AKS) als Event Grid-Quelle.

Löschen des Clusters und der Abonnements

Führen Sie den Befehl az group delete aus, um die Ressourcengruppe, den AKS-Cluster, den Namespace, den Event Hub und alle dazugehörigen Ressourcen zu entfernen.

az group delete --name MyResourceGroup --yes --no-wait

Hinweis

Wenn Sie den Cluster löschen, wird der vom AKS-Cluster verwendete Microsoft Entra-Dienstprinzipal nicht entfernt. Schritte zum Entfernen des Dienstprinzipals finden Sie unter den Überlegungen zum AKS-Dienstprinzipal und dessen Löschung.

Wenn Sie eine verwaltete Identität verwendet haben, wird die Identität von der Plattform verwaltet und muss nicht entfernt werden.

Nächste Schritte

In dieser Schnellstartanleitung haben Sie einen Kubernetes-Cluster bereitgestellt und dann AKS-Ereignisse in Azure Event Hubs abonniert.

Weitere Informationen zu Azure Container Service sowie ein vollständiges Beispiel vom Code bis zur Bereitstellung finden Sie im Kubernetes-Clustertutorial.