Installieren der Event Grid-Erweiterung in einem Kubernetes-Cluster mit Azure Arc-Unterstützung
Dieser Artikel führt Sie durch die Schritte zur Installation von Event Grid auf einem Azure Arc-fähigen Kubernetes-Cluster.
Der Kürze halber wird in diesem Artikel „Event Grid auf der Kubernetes Erweiterung“ als „Event Grid auf Kubernetes“ oder einfach als „Event Grid“ bezeichnet.
Wichtig
Event Grid in Kubernetes mit Azure Arc befindet sich derzeit in der öffentlichen Vorschau. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Unterstützte Kubernetes-Distributionen
Nachfolgend sind die unterstützten Kubernetes-Versionen aufgeführt, auf denen Event Grid bereitgestellt und ausgeführt werden kann.
- Von Azure AKS unterstützte Kubernetes-Distributionen.
- RedHat OpenShift Container-Plattform.
Bezeichnung der Event Grid-Erweiterung
Der Vorgang zum Installieren einer Event Grid-Serviceinstanz in einem Kubernetes-Cluster ist die Erstellung einer Azure Arc-Clustererweiterung, die sowohl einen Event Grid-Broker als auch einen Event Grid-Operator bereitstellt. Weitere Informationen zur Funktion des Brokers und Operators finden Sie unter Event Grid für Kubernetes-Komponenten. Das Feature Azure Arc-Clustererweiterung ermöglicht die Lebenszyklusverwaltung mit ARM-Vorgängen (Azure Resource Manager auf Steuerungsebene für eine Event Grid-Instanz, die in Kubernetes-Clustern mit Azure Arc-Unterstützung bereitgestellt ist.
Hinweis
Die Vorschauversion des Diensts unterstützt nur eine einzelne Instanz der Event Grid-Erweiterung in einem Kubernetes-Cluster, da die Event Grid-Erweiterung derzeit als Erweiterung im Clusterbereich definiert ist. Es werden noch keine Bereitstellungen auf Namespace-Ebene für Event Grid unterstützt, die es ermöglichen würden, mehrere Instanzen in einem Cluster bereitzustellen. Weitere Informationen finden Sie unter Erweiterungsbereich.
Voraussetzungen
Bevor Sie mit der Installation von Event Grid fortfahren, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind.
- Ein Cluster, der in einer der unterstützten Kubernetes-Distributionen ausgeführt wird.
- Ein Azure-Abonnement.
- PKI-Zertifikate, die zum Herstellen einer HTTPS-Verbindung mit dem Event Grid Broker verwendet werden.
- Verbinden Sie Ihren Cluster mit Azure Arc.
Anfordern von Support
Wenn Sie auf ein Problem stoßen, finden Sie im Abschnitt Fehlerbehebung Unterstützung für häufige Umstände. Wenn weiterhin Probleme auftreten, erstellen Sie eine Azure-Supportanfrage.
PKI-Zertifikatanforderungen
Der Event Grid Broker (Server) bedient zwei Arten von Clients. Die Serverauthentifizierung erfolgt mithilfe von Zertifikaten. Die Clientauthentifizierung erfolgt entweder anhand von Zertifikaten oder SAS-Schlüsseln basierend auf dem Clienttyp.
- Event Grid-Operatoren, die Anforderungen auf Steuerungsebene an den Event Grid-Broker stellen, werden mithilfe von Zertifikaten authentifiziert.
- Event Grid-Herausgeber von Ereignissen für ein Event Grid-Thema werden anhand der Thema-bezogenen SAS-Schlüssel authentifiziert.
Um eine sichere HTTPS-Kommunikation mit dem Event Grid-Broker und Event Grid-Operator zu gewährleisten, verwenden wir PKI-Zertifikate während der Installation der Event Grid-Erweiterung. Dies sind die allgemeinen Anforderungen für diese PKI-Zertifikate:
Die Zertifikate und Schlüssel müssen X.509-Zertifikat und Privacy-Enhanced Mail PEM-verschlüsselt sein.
Um das Event Grid Brokerzertifikat (Server) während der Installation zu einzurichten, müssen Sie Folgendes bereitstellen:
- Ein CA-Zertifikat
- Ein öffentliches Zertifikat
- Ein privater Schlüssel
Zur Konfiguration des Event Grid-Operator-Zertifikats (Client) müssen Sie Folgendes bereitstellen:
- Ein CA-Zertifikat
- Ein öffentliches Zertifikat
- Ein privater Schlüssel
Veröffentlichungsclients können das Event Grid-Broker-CA-Zertifikat verwenden, um den Server beim Veröffentlichen von Ereignissen in einem Thema zu validieren.
Wichtig
Während eine mit einem Client verbundene Domäne über mehr als ein öffentliches Zertifikat verfügen kann, das von verschiedenen Zertifizierungsstellen ausgestellt wurde, erlaubt Event Grid auf Kubernetes nur das Hochladen eines einzigen CA-Zertifikats für Clients bei der Installation von Event Grid. Folglich sollten die Zertifikate für den Event-Grid-Betreiber von der gleichen CA ausgestellt (signiert) sein, zur erfolgreichen Validierung der Zertifikatskette und der erfolgreichen Einrichtung einer TLS-Session.
Wenn Sie den Common Name (CN) für Server- und Client-Zertifikate konfigurieren, stellen Sie sicher, dass sie sich von dem CN unterscheiden, der für das Zertifikat der Zertifizierungsstelle bereitgestellt wird.
Wichtig
Für anfängliche Proof-of-Concept-Phasen können selbstsignierte Zertifikate eine Option sein, aber im Allgemeinen sollten ordnungsgemäße PKI-Zertifikate, die von einer Zertifizierungsstelle (CA) signiert sind, beschaffen und verwendet werden.
Installation mit dem Azure-Portal
Suchen Sie auf dem Azure-Portal (obiges Feld) nach Azure Arc
Wählen Sie im linken Menü im Abschnitt Infrastruktur die Option Kubernetes-Cluster aus
Suchen Sie in der Liste der Cluster nach dem Cluster, in dem Sie Event Grid installieren möchten, und wählen Sie ihn aus. Die Übersichts- Seite für den Cluster wird angezeigt.
Wählen Sie Erweiterungen in der Gruppe Einstellungen im linken Menü.
Klicken Sie auf + Hinzufügen. Eine Seite mit den verfügbaren Azure Arc Kubernetes-Erweiterungen wird angezeigt.
Wählen Sie auf der Seite Neue RessourceEvent Grid in Kubernetes-Erweiterung aus.
Wählen Sie auf der Seite Event Grid in Kubernetes-Erweiterung die Option Erstellen aus.
Führen Sie auf der Seite Event Grid installieren auf der Registerkarte Grundlagen die folgenden Schritte aus.
Im Projektdetails-Abschnitt werden schreibgeschützte Abonnement- und Ressourcengruppenwerte angezeigt, da Azure Arc-Erweiterungen unter demselben Azure-Abonnement und derselben Ressourcengruppe des verbundenen Clusters bereitgestellt werden, auf dem sie installiert sind.
Geben Sie im Feld Name der Event Grid Erweiterung einen Namen an. Dieser Name sollte unter anderen Azure Arc-Erweiterungen, die auf demselben mit Azure Arc verbundenen Cluster bereitgestellt werden, eindeutig sein.
Für den Release-Namespacekönnen Sie den Namen eines Kubernetes-Namespace angeben, in dem Event Grid-Komponenten bereitgestellt werden. Angenommen, Sie möchten, dass für alle Dienste mit Azure Arc-Unterstützung in Ihrem Cluster ein einzelner Namespace bereitgestellt wird. Der Standardwert ist eventgrid-system. Wenn der angegebene Namespace nicht vorhanden ist, wird er für Sie erstellt.
Im Abschnitt Event Grid Broker-Details wird der Service-Typ angezeigt. Der Event-Grid-Broker, der die Komponente ist, welche die Topic-Endpunkte bereitstellt, an die Ereignisse gesendet werden, wird als Kubernetes-Dienst vom Typ ClusterIP bereitgestellt. Daher verwenden die IPs, die allen Themen zugewiesen sind, den für den Cluster konfigurierten privaten IP-Raum.
Geben Sie den Speicherklassennamen an, den Sie für den Broker verwenden möchten und der von Ihrer Kubernetes-Distribution unterstützt wird. Wenn Sie z. B. AKS nutzen, könnten Sie
azurefile
verwenden, welches wiederum Azure Storage Standard verwendet. Weitere Informationen zu vordefinierten Speicherklassen, die von AKS unterstützt werden, finden Sie unter Speicherklassen in AKS. Wenn Sie andere Kubernetes-Distributionen verwenden, finden Sie in der Dokumentation zur Kubernetes-Verteilung Informationen zu unterstützten vordefinierten Speicherklassen oder zur Bereitstellung Ihrer eigener Speicherklassen.Speichergröße. Der Standardwert ist 1 GB. Berücksichtigen Sie die Erfassungsrate, wenn Sie die Größe Ihres Speichers bestimmen. Die Erfassungsrate in MiB/Sekunde, gemessen als Größe Ihrer Ereignisse, mit der Veröffentlichungsrate (Ereignisse pro Sekunde) multipliziert in allen Themen auf dem Event Grid Broker ist ein wichtiger Faktor bei der Speicherzuweisung. Ereignisse sind vorübergehender Natur, und sobald sie übermittelt wurden, ist kein Speicherverbrauch für diese Ereignisse vorhanden. Die Erfassungsrate ist zwar ein Haupttreiber für die Speichernutzung, jedoch nicht der einzige. Die Metadaten, welche die Themen- und Ereignisabonnementkonfiguration enthalten, verbrauchen ebenfalls Speicherplatz, das erfordert jedoch in der Regel eine geringere Menge an Speicherplatz als die Ereignisse, die von Event Grid aufgenommen und geliefert werden.
Arbeitsspeicherlimit. Der Standardwert ist 1 GB.
Arbeitsspeicheranforderung. Der Standardwert ist 200 MB. Dieses Feld kann nicht bearbeitet werden.
Wählen Sie Weiter: Konfiguration im unteren Teil der Seite aus.
Gehen Sie auf der Registerkarte Konfiguration der Seite Event Grid installieren wie folgt vor:
HTTP-Kommunikation aktivieren (unsicher) . Aktivieren Sie dieses Kontrollkästchen, wenn Sie einen nicht gesicherten Kanal verwenden möchten, wenn Clients mit dem Event Grid Broker kommunizieren.
Wichtig
Wenn Sie diese Option aktivieren, wird für die Kommunikation mit dem Event Grid-Broker HTTP als Transportmittel verwendet. Daher können ein beliebiger Publishing-Client und der Event-Grid-Betreiber nicht sicher mit dem Event-Grid-Broker kommunizieren. Sie sollten diese Option nur in den frühen Phasen der Entwicklung verwenden.
Wenn Sie die HTTP-Kommunikation nicht aktiviert haben, wählen Sie jede der PKI-Zertifikatdateien aus, die Sie beschaffen haben, und erfüllen Sie die PKI-Zertifikatanforderungen.
Wählen Sie am Ende der Seite Weiter: Überwachen aus.
Gehen Sie auf der Registerkarte Überwachung der Seite Event Grid installieren wie folgt vor:
Wählen Sie Metriken aktivieren aus (optional). Wenn Sie diese Option auswählen, stellt Event Grid in Kubernetes Metriken für Themen und Ereignisabonnements im Prometheus-Darstellungsformat dar.
Wählen Sie Weiter: Tags um zur Tags-Seite zu navigieren.
Führen Sie auf der Seite Tags die folgenden Schritte aus:
Definieren Sie Tags bei Bedarf.
Wählen Sie am unteren Rand der Seite die Option Bewerten + erstellen aus.
Wählen Sie auf der Registerkarte Überprüfen + erstellen die Option Erstellen aus.
Wichtig
Bei der Installation von Event Grid handelt es sich um einen asynchronen Vorgang, dessen Ausführung auf dem Kubernetes-Cluster die Zeit überschreiten kann, zu der Sie im Azure-Portal eine Benachrichtigung sehen, dass die Bereitstellung abgeschlossen ist. Warten Sie mindestens 5 Minuten, nachdem eine Benachrichtigung mit dem Hinweis angezeigt wird, dass Ihre Bereitstellung abgeschlossen ist, bevor Sie versuchen, einen benutzerdefinierten Speicherort zu erstellen (nächster Schritt). Wenn Sie über Zugriff auf dem Kubernetes-Cluster verfügen, können Sie in einer Bash-Session den folgenden Befehl ausführen, um zu überprüfen, ob sich die Pods des Event Grid-Brokers und Event Grid-Operators im Ausführungs-Status befinden, was darauf hindeuten würde, dass die Installation abgeschlossen wurde:
kubectl get pods -n \<release-namespace-name\>
Hier ist die Beispielausgabe:
NAME READY STATUS RESTARTS AGE eventgrid-broker-568f75976-wxkd2 1/1 Running 0 2m28s eventgrid-operator-6c4c6c675d-ttjv5 1/1 Running 0 2m28s
Wichtig
Ein benutzerdefinierter Speicherort muss erstellt werden, bevor versucht wird, Event Grid bereitzustellen. Um einen benutzerdefinierten Speicherort zu erstellen, können Sie die Kontext-Seite in den letzten 5 Minuten nach der Anzeige des Bereitstellungs-Abschlusses auswählen. Alternativ können Sie einen benutzerdefinierten Speicherort mithilfe des Azure-Portals erstellen. Weitere Informationen finden Sie unter Erstellen und Verwalten benutzerdefinierter Standorte in Kubernetes mit Azure Arc-Unterstützung.
Nach der erfolgreichen Bereitstellung wird auf der Seite Erweiterungen ein Eintrag mit dem Namen angezeigt, den Sie für Ihre Event Grid-Erweiterung angegeben haben. Wenn für den Installationsstatus der Wert Ausstehend angezeigt wird, warten Sie einige Minuten, und wählen Sie dann auf der Symbolleiste Aktualisieren aus.
Installation mit der Azure CLI
Starten Sie eine Shellsitzung. Sie können eine Sitzung auf Ihrem Computer starten oder einen Browser für https://shell.azure.com öffnen.
Erstellen Sie die Konfigurationsdatei
protected-settings-extension.json
. Diese Datei wird beim Erstellen der Event Grid-Erweiterung als Parameter übergeben.Ersetzen Sie im folgenden Befehl und in jeder der Konfigurationszeilen
filename
durch den Namen, der das öffentliche Zertifikat, das Zertifizierungsstellenzertifikat oder den Schlüssel für den Operator (Client) oder Broker (Server) enthält. Alle bereitgestellten Zertifikate sollten base64-codiert ohne Zeilenumbruch sein. Daher die Verwendung desbase64 --wrap=0
-Befehls.echo "{ \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 <filename> --wrap=0)\", \"eventgridoperator.identityCert.base64EncodedIdentityKey\":\"$(base64 <filename> --wrap=0)\", \"eventgridoperator.identityCert.base64EncodedIdentityCaCert\":\"$(base64 <filename> --wrap=0)\", \"eventgridbroker.service.tls.base64EncodedServerCert\": \"$(base64 <filename> --wrap=0)\" , \"eventgridbroker.service.tls.base64EncodedServerKey\": \"$(base64 <filename> --wrap=0)\" , \"eventgridbroker.service.tls.base64EncodedServerCaCert\": \"$(base64 <filename> --wrap=0)\" }" > protected-settings-extension.json
Wenn das öffentliche Zertifikat für den Broker (erstes Konfigurationselement oben) beispielsweise
client.cer
heißt, sollte die erste Konfigurationszeile wie die folgende aussehen:\"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 client.cer --wrap=0)\",
Erstellen Sie die Konfigurationsdatei
settings-extension.json
. Diese Datei wird beim Erstellen der Event Grid-Erweiterung als Parameter übergeben.Wichtig
Sie dürfen die Werte für
ServiceAccount
undserviceType
nicht ändern. In der Vorschauversion wird nur der Kubernetes-DiensttypClusterIP
unterstützt.Geben Sie für
storageClassName
den Speicherklassennamen an, den Sie für den Broker verwenden möchten, und der von Ihrer Kubernetes-Distribution unterstützt wird. Wenn Sie z. B. AKS nutzen, könnten Sieazurefile
verwenden, welches wiederum Azure Storage Standard verwendet. Weitere Informationen zu vordefinierten Speicherklassen, die von AKS unterstützt werden, finden Sie unter Speicherklassen in AKS. Wenn Sie andere Kubernetes-Distributionen verwenden, finden Sie in der Dokumentation zur Kubernetes-Verteilung Informationen zu unterstützten vordefinierten Speicherklassen oder zur Bereitstellung Ihrer eigener Speicherklassen.Setzen Sie
reporterType
aufprometheus
, um Metriken für Themen und Ereignisabonnements im Prometheus-Expositionsformat zu aktivieren.Wichtig
Während der Vorschauversion ist die Verwendung eines Prometheus-Clients der einzige unterstützte Mechanismus zum Abrufen von Metriken.
echo "{ \"Microsoft.CustomLocation.ServiceAccount\":\"eventgrid-operator\", \"eventgridbroker.service.serviceType\": \"ClusterIP\", \"eventgridbroker.dataStorage.storageClassName\": \"<storage_class_name>\", \"eventgridbroker.diagnostics.metrics.reporterType\":\"prometheus\" }" > settings-extension.json
Erstellen Sie eine Kubernetes-Erweiterung, die Event Grid-Komponenten in Ihrem Cluster installiert.
Für die Parameter
cluster-name
undresource-group
müssen Sie die gleichen Namen verwenden, die beim Verbinden Ihres Clusters mit Azure Arc angegeben wurden.release-namespace
ist der Namespace, in dem Event Grid-Komponenten bereitgestellt werden. Der Standardwert ist eventgrid-system. Möglicherweise möchten Sie einen Wert angeben, um den Standardwert zu überschreiben. Angenommen, Sie möchten, dass für alle Dienste mit Azure Arc-Unterstützung in Ihrem Cluster ein einzelner Namespace bereitgestellt wird. Wenn der angegebene Namespace nicht vorhanden ist, wird er für Sie erstellt.Wichtig
Während der Vorschauversion ist
cluster
der einzige Bereich, der beim Erstellen oder Aktualisieren einer Event Grid-Erweiterung unterstützt wird. Das bedeutet, dass der Dienst nur eine einzelne Instanz der Event Grid-Erweiterung in einem Kubernetes-Cluster unterstützt. Bereitstellungen im Namespacebereich werden noch nicht unterstützt. Weitere Informationen finden Sie unter Erweiterungsbereich.az k8s-extension create \ --cluster-type connectedClusters \ --cluster-name <connected_cluster_name> \ --resource-group <resource_group_of_connected_cluster> \ --name <event_grid_extension_name> \ --extension-type Microsoft.EventGrid \ --scope cluster \ --auto-upgrade-minor-version true \ --release-train Stable \ --release-namespace <namespace_name> \ --configuration-protected-settings-file protected-settings-extension.json \ --configuration-settings-file settings-extension.json
Weitere Informationen zum CLI-Befehl finden Sie unter az k8s-extension create. Beachten Sie, dass Sie den Parameter
--config-file
verwenden können, um den Namen einer JSON-Datei zu übergeben, die Konfigurationsinformationen im Zusammenhang mit Event Grid enthält. Um HTTP zu unterstützen, schließen Sie die folgende Einstellung ein."eventgridbroker.service.supportedProtocols[0]": "http"
Hier sehen Sie ein Beispiel für settings-extension.json mit der obigen Einstellung.
{ "Microsoft.CustomLocation.ServiceAccount": "eventgrid-operator", "eventgridbroker.service.serviceType": "ClusterIP", "eventgridbroker.service.supportedProtocols[0]": "http", "eventgridbroker.dataStorage.storageClassName": "default", "eventgridbroker.diagnostics.metrics.reporterType": "prometheus" }
Überprüfen Sie, ob die Event Grid-Erweiterung erfolgreich installiert wurde.
az k8s-extension show --cluster-type connectedClusters --cluster-name <connected_cluster_name> --resource-group <resource_group_of_connected_cluster> --name <event_grid_extension_name>
Die
installedState
-Eigenschaft sollteInstalled
sein, wenn die Event Grid-Erweiterungskomponenten erfolgreich bereitgestellt wurden.
Benutzerdefinierter Speicherort
Wichtig
Ein benutzerdefinierter Speicherort muss erstellt werden, bevor versucht wird, Event Grid bereitzustellen. Sie können mithilfe des Azure-Portals einen benutzerdefinierten Speicherort erstellen.
Problembehandlung
Azure Arc Connect-Cluster-Probleme
Problem: Wenn Sie zu Azure Arc navigieren und im Menü auf der linken Seite Kubernetes-Cluster auswählen, wird auf der angezeigten Seite nicht der Kubernetes-Cluster angezeigt, auf dem Sie Event Grid installieren wollen.
Lösung: Ihr Kubernetes-Cluster ist nicht bei Azure registriert. Führen Sie die Schritte im Artikel Verbinden eines vorhandenen Kubernetes-Clusters mit Azure Arc aus. Falls während dieses Schritts ein Problem auftritt, stellen Sie eine Supportanfrage an das Team für Kubernetes mit Azure Arc-Unterstützung.
Probleme mit der Event Grid-Erweiterung
Problem: Wenn Sie versuchen, eine „Event Grid-Erweiterung" zu installieren, erhalten Sie die folgende Meldung: „Ungültiger Vorgang - Eine Instanz des Event Grids wurde bereits auf diesem verbundenen Kubernetes-Cluster installiert. Die Event Grid-Erweiterung ist auf Clusterebene vorgesehen, was bedeutet, dass nur eine Instanz in einem Cluster installiert werden kann."
Erklärung: Sie haben bereits Event Grid installiert. Die Vorschauversion von Event Grid unterstützt nur eine Event Grid Erweiterungsinstanz, die in einem Cluster bereitgestellt wird.
Nächste Schritte
Erstellen Sie einen benutzerdefinierten Speicherort, und befolgen Sie dann die Anweisungen im Schnellstart Weiterleiten von Cloudereignissen an Webhooks mit Azure Event Grid auf Kubernetes.