Installera Event Grid-tillägget i Azure Arc-aktiverat Kubernetes-kluster
Den här artikeln vägleder dig genom stegen för att installera Event Grid i ett Azure Arc-aktiverat Kubernetes-kluster .
För korthet refererar den här artikeln till "Event Grid på Kubernetes-tillägget" som "Event Grid på Kubernetes" eller bara "Event Grid".
Viktigt!
Event Grid på Kubernetes med Azure Arc är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Kubernetes-distributioner som stöds
Följande är de Kubernetes-distributioner som stöds till vilka Event Grid kan distribueras och köras.
- Azure AKS har stöd för Kubernetes-distributioner.
- RedHat OpenShift Container Platform.
Event Grid-tillägg
Åtgärden som installerar en Event Grid-tjänstinstans i ett Kubernetes-kluster är skapandet av ett Azure Arc-klustertillägg som distribuerar både en Event Grid-asynkron och en Event Grid-operatör. Mer information om funktionen för koordinatorn och operatorn finns i Event Grid på Kubernetes-komponenter. Azure Arc-klustertilläggsfunktionen tillhandahåller livscykelhantering med hjälp av arm-kontrollplansåtgärder (Azure Resource Manager) till Event Grid som distribuerats till Azure Arc-aktiverade Kubernetes-kluster.
Kommentar
Förhandsversionen av tjänsten stöder endast en enda instans av Event Grid-tillägget i ett Kubernetes-kluster eftersom Event Grid-tillägget för närvarande definieras som ett klusteromfattande tillägg. Det finns inget stöd för namnområdesomfångsdistributioner för Event Grid ännu som gör att flera instanser kan distribueras till ett kluster. Mer information finns i Omfång för tillägg.
Förutsättningar
Innan du fortsätter med installationen av Event Grid kontrollerar du att följande krav är uppfyllda.
- Ett kluster som körs på en av kubernetes-distributionerna som stöds.
- En Azure-prenumeration.
- PKI-certifikat som ska användas för att upprätta en HTTPS-anslutning med Event Grid-koordinatorn.
- Anslut klustret till Azure Arc.
Få support
Om du stöter på ett problem kan du läsa avsnittet Felsökning för hjälp med vanliga villkor. Om du fortfarande har problem skapar du en Azure Support begäran.
Krav för PKI-certifikat
Event Grid Broker (server) hanterar två typer av klienter. Serverautentisering görs med hjälp av certifikat. Klientautentisering görs med antingen certifikat eller SAS-nycklar baserat på klienttypen.
- Event Grid-operatorer som gör kontrollplansbegäranden till Event Grid-koordinatorn autentiseras med hjälp av certifikat.
- Event Grid-utgivare som publicerar händelser till ett Event Grid-ämne autentiseras med ämnets SAS-nycklar.
För att upprätta en säker HTTPS-kommunikation med Event Grid-koordinatorn och Event Grid-operatorn använder vi PKI-certifikat under installationen av Event Grid-tillägget. Här är de allmänna kraven för dessa PKI-certifikat:
Certifikaten och nycklarna måste vara X.509-certifikat och PRIVACY-Enhanced Mail PEM-kodade.
Om du vill konfigurera Event Grid Broker-certifikatet (server) under installationen måste du ange:
- Ett CA-certifikat
- Ett offentligt certifikat
- En privat nyckel
Om du vill konfigurera Event Grid-operatörscertifikatet (klientcertifikatet) måste du ange:
- Ett CA-certifikat
- Ett offentligt certifikat
- En privat nyckel
Publiceringsklienter kan använda Ca-certifikatet för Event Grid-koordinator för att verifiera servern när händelser publiceras till ett ämne.
Viktigt!
En domän som är associerad med klienten kan ha fler än ett offentligt certifikat utfärdat av olika certifikatutfärdare, men Event Grid på Kubernetes tillåter endast uppladdning av ett enda CA-certifikat för klienter vid installation av Event Grid. Därför bör certifikaten för Event Grid-operatorn utfärdas (signeras) av samma certifikatutfärdare för att verifieringen av certifikatkedjan ska lyckas och en TLS-session upprättas.
När du konfigurerar det gemensamma namnet (CN) för server- och klientcertifikat kontrollerar du att de skiljer sig från det CN som anges för certifikatutfärdarcertifikatet.
Viktigt!
För tidiga proof-of-concept-faser kan självsignerade certifikat vara ett alternativ, men i allmänhet bör rätt PKI-certifikat som signerats av en certifikatutfärdare (CA) köpas och användas.
Installera med Azure Portal
På Azure Portal söker du (fält överst) efter Azure Arc
Välj Kubernetes-kluster på menyn till vänster i avsnittet Infrastruktur
Under listan över kluster letar du reda på den som du vill installera Event Grid till och väljer det. Sidan Översikt för klustret visas.
Välj Tillägg i gruppen Inställningar på den vänstra menyn.
Markera + Lägg till. En sida som visar tillgängliga Azure Arc Kubernetes-tillägg visas.
På sidan Ny resurs väljer du Event Grid i Kubernetes-tillägget.
På sidan Event Grid på Kubernetes-tillägget väljer du Skapa.
På fliken Grundläggande på sidan Installera Event Grid följer du de här stegen.
I avsnittet Projektinformation visas skrivskyddade prenumerations- och resursgruppsvärden eftersom Azure Arc-tillägg distribueras under samma Azure-prenumeration och resursgrupp för det anslutna kluster där de är installerade.
Ange ett namn i fältet Event Grid-tilläggsnamn . Det här namnet bör vara unikt bland andra Azure Arc-tillägg som distribueras till samma Azure Arc-anslutna kluster.
För Versionsnamnområde kanske du vill ange namnet på ett Kubernetes-namnområde där Event Grid-komponenter ska distribueras till. Du kanske till exempel vill ha ett enda namnområde för alla Azure Arc-aktiverade tjänster som distribueras till klustret. Standardvärdet är eventgrid-system. Om det angivna namnområdet inte finns skapas det åt dig.
I avsnittet Information om Event Grid-koordinator visas tjänsttypen. Event Grid-koordinatorn, som är den komponent som exponerar de ämnesslutpunkter som händelser skickas till, exponeras som en Kubernetes-tjänsttyp ClusterIP. Därför använder IP-adresser som tilldelats till alla ämnen det privata IP-utrymme som konfigurerats för klustret.
Ange det lagringsklassnamn som du vill använda för koordinatorn och som stöds av din Kubernetes-distribution. Om du till exempel använder AKS kan du använda
azurefile
, som använder Azure Standard Storage. Mer information om fördefinierade lagringsklasser som stöds av AKS finns i Lagringsklasser i AKS. Om du använder andra Kubernetes-distributioner kan du läsa dokumentationen för Kubernetes-distributionen för fördefinierade lagringsklasser som stöds eller hur du kan ange egna.Lagringsstorlek. Standardvärdet är 1 GiB. Tänk på inmatningshastigheten när du bestämmer storleken på din lagring. Inmatningshastighet i MiB/sekund mätt som storleken på dina händelser gånger publiceringsfrekvensen (händelser per sekund) i alla ämnen i Event Grid-asynkronisering är en nyckelfaktor vid allokering av lagring. Händelser är tillfälliga och när de har levererats finns det ingen lagringsförbrukning för dessa händelser. Inmatningshastigheten är en viktig drivrutin för lagringsanvändning, men den är inte den enda. Konfiguration av metadata som innehåller ämne och händelseprenumeration förbrukar också lagringsutrymme, men det kräver normalt en lägre mängd lagringsutrymme än de händelser som matas in och levereras av Event Grid.
Minnesgräns. Standardvärdet är 1 GiB.
Minnesbegäran. Standardvärdet är 200 MiB. Det här fältet kan inte redigeras.
Välj Nästa: Konfiguration längst ned på sidan.
Gör följande på fliken Konfiguration på sidan Installera Event Grid:
Aktivera HTTP-kommunikation (inte säker). Markera den här kryssrutan om du vill använda en icke-skyddad kanal när klienter kommunicerar med Event Grid-koordinatorn.
Viktigt!
Om du aktiverar det här alternativet blir kommunikationen med Event Grid-koordinatorn att använda HTTP som transport. Därför kommunicerar inte någon publiceringsklient och Event Grid-operatorn säkert med Event Grid-koordinatorn. Du bör endast använda det här alternativet under tidiga utvecklingsstadier.
Om du inte har aktiverat HTTP-kommunikation väljer du var och en av PKI-certifikatfilerna som du har köpt och uppfyller PKI-certifikatkraven.
Välj Nästa : Övervakning längst ned på sidan.
Gör följande på fliken Övervakning på sidan Installera Event Grid:
Välj Aktivera mått (valfritt). Om du väljer det här alternativet exponerar Event Grid på Kubernetes mått för ämnen och händelseprenumerationer med hjälp av Prometheus-expositionsformatet.
Välj Nästa: Taggar för att navigera till sidan Taggar .
Gör följande på sidan Taggar :
Definiera taggar om det behövs.
Välj Granska + skapa längst ned på sidan.
På fliken Granska + skapa väljer du Skapa.
Viktigt!
Installationen av Event Grid är en asynkron åtgärd som kan köras längre i Kubernetes-klustret än när du ser ett meddelande på Azure-portalen som informerar om att distributionen är klar. Vänta minst 5 minuter efter att du ser ett meddelande om att "Distributionen är klar" innan du försöker skapa en anpassad plats (nästa steg). Om du har åtkomst till Kubernetes-klustret kan du på en bash-session köra följande kommando för att kontrollera om Event Grid-koordinatorn och Event Grid-operatörspoddarna är i körningstillstånd, vilket indikerar att installationen har slutförts:
kubectl get pods -n \<release-namespace-name\>
Här är exempelutdata:
NAME READY STATUS RESTARTS AGE eventgrid-broker-568f75976-wxkd2 1/1 Running 0 2m28s eventgrid-operator-6c4c6c675d-ttjv5 1/1 Running 0 2m28s
Viktigt!
En anpassad plats måste skapas innan du försöker distribuera Event Grid-ämnen. Om du vill skapa en anpassad plats kan du välja sidan Kontext längst ned 5 minuter efter att meddelandet "Distributionen är klar" visas. Du kan också skapa en anpassad plats med hjälp av Azure Portal. Mer information finns i dokumentationen om anpassad plats.
När distributionen har slutförts kan du se en post på sidan Tillägg med det namn som du angav i Event Grid-tillägget. Om du ser Väntar på installationsstatus väntar du några minuter och väljer sedan Uppdatera i verktygsfältet.
Installera med Azure CLI
Starta en shell-session. Du kan starta en session på datorn eller öppna en webbläsare till https://shell.azure.com.
Skapa konfigurationsfilen
protected-settings-extension.json
. Den här filen skickas som en parameter när du skapar Event Grid-tillägget.I följande kommando och i var och en av konfigurationsraderna ersätter du
filename
med namnet som innehåller det offentliga certifikatet, CA-certifikatet eller nyckeln för operatorn (klienten) eller broker (server) i enlighet med detta. Alla certifikat som tillhandahålls ska vara base64-kodade utan radbrytning. Därför användsbase64 --wrap=0
kommandot.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
Om till exempel det offentliga certifikatet för asynkron meddelandekö (det första konfigurationsobjektet ovan) anropas
client.cer
bör den första konfigurationsraden se ut så här:\"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 client.cer --wrap=0)\",
Skapa konfigurationsfilen
settings-extension.json
. Den här filen skickas som en parameter när du skapar Event Grid-tillägget.Viktigt!
Du kanske inte ändrar värdena för
ServiceAccount
ochserviceType
. Den enda Kubernetes-tjänsttypen som stöds under förhandsversionen ärClusterIP
.Ange
storageClassName
den lagringsklass som du vill använda för koordinatorn och som stöds av din Kubernetes-distribution. Om du till exempel använder AKS kan du användaazurefile
, som använder Azure Standard Storage. Mer information om fördefinierade lagringsklasser som stöds av AKS finns i Lagringsklasser i AKS. Om du använder andra Kubernetes-distributioner kan du läsa dokumentationen för Kubernetes-distributionen för fördefinierade lagringsklasser som stöds eller hur du kan ange egna.Ange
reporterType
till för attprometheus
aktivera mått för ämnen och händelseprenumerationer med hjälp av Prometheus-expositionsformatet.Viktigt!
Under förhandsversionen är användning av en Prometheus-klient den enda mekanism som stöds för att hämta mått.
echo "{ \"Microsoft.CustomLocation.ServiceAccount\":\"eventgrid-operator\", \"eventgridbroker.service.serviceType\": \"ClusterIP\", \"eventgridbroker.dataStorage.storageClassName\": \"<storage_class_name>\", \"eventgridbroker.diagnostics.metrics.reporterType\":\"prometheus\" }" > settings-extension.json
Skapa ett Kubernetes-tillägg som installerar Event Grid-komponenter i klustret.
För parametrar
cluster-name
ochresource-group
måste du använda samma namn som angavs när du anslöt klustret till Azure Arc.release-namespace
är det namnområde där Event Grid-komponenter ska distribueras till. Standardvärdet är eventgrid-system. Du kanske vill ange ett värde för att åsidosätta standardvärdet. Du kanske till exempel vill ha ett enda namnområde för alla Azure Arc-aktiverade tjänster som distribueras till klustret. Om det angivna namnområdet inte finns skapas det åt dig.Viktigt!
Under förhandsversionen
cluster
är det enda omfång som stöds när du skapar eller uppdaterar ett Event Grid-tillägg. Det innebär att tjänsten endast stöder en enda instans av Event Grid-tillägget i ett Kubernetes-kluster. Det finns ännu inget stöd för namnområdesomfångsdistributioner. Mer information finns i Omfång för tillägg.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
Mer information om CLI-kommandot finns i az k8s-extension create. Observera att du kan använda parametern
--config-file
för att skicka namnet på en json-fil som innehåller konfigurationsinformation som är relaterad till Event Grid. Ta med följande inställning för att stödja HTTP."eventgridbroker.service.supportedProtocols[0]": "http"
Här är ett exempel på settings-extension.json med ovanstående inställning.
{ "Microsoft.CustomLocation.ServiceAccount": "eventgrid-operator", "eventgridbroker.service.serviceType": "ClusterIP", "eventgridbroker.service.supportedProtocols[0]": "http", "eventgridbroker.dataStorage.storageClassName": "default", "eventgridbroker.diagnostics.metrics.reporterType": "prometheus" }
Kontrollera att Event Grid-tillägget har installerats.
az k8s-extension show --cluster-type connectedClusters --cluster-name <connected_cluster_name> --resource-group <resource_group_of_connected_cluster> --name <event_grid_extension_name>
Egenskapen
installedState
bör varaInstalled
om Event Grid-tilläggskomponenterna har distribuerats.
Anpassad plats
Viktigt!
En anpassad plats måste skapas innan du försöker distribuera Event Grid-ämnen. Du kan skapa en anpassad plats med hjälp av Azure Portal.
Felsökning
Problem med Azure Arc Connect-kluster
Problem: När du navigerar till Azure Arc och väljer Kubernetes-kluster på menyn till vänster visas inte Kubernetes-klustret där jag tänker installera Event Grid.
Lösning: Kubernetes-klustret är inte registrerat i Azure. Följ stegen i artikeln Anslut ett befintligt Kubernetes-kluster till Azure Arc. Om du har problem under det här steget kan du skicka en supportbegäran till Det Azure Arc-aktiverade Kubernetes-teamet.
Problem med Event Grid-tillägg
Problem: När du försöker installera ett "Event Grid-tillägg" får du följande meddelande: "Ogiltig åtgärd – En instans av Event Grid har redan installerats på det här anslutna Kubernetes-klustret. Event Grid-tillägget är begränsat till klusternivå, vilket innebär att endast en instans kan installeras i ett kluster."
Förklaring: Event Grid är redan installerat. Förhandsversionen av Event Grid stöder bara en Event Grid-tilläggsinstans som distribuerats till ett kluster.
Nästa steg
Skapa en anpassad plats och följ sedan anvisningarna i snabbstarten Dirigera molnhändelser till Webhooks med Azure Event Grid på Kubernetes.