Installera Event Grid på Azure Arc Kubernetes-kluster

Den här artikeln vägleder dig genom stegen för att Event Grid på ett Azure Arc kubernetes-kluster.

Av utrymmeskändhet refererar den här artikeln till "Event Grid på Kubernetes-tillägg" 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

Nedan visas de Kubernetes-distributioner som Event Grid kan distribueras och köras till.

  1. Kubernetes-distributioner som stöds avAzure AKS.
  2. RedHat OpenShift Container Platform.

Event Grid tillägg

Åtgärden som installerar en Event Grid-tjänstinstans på ett Kubernetes-kluster är att skapa ett Azure Arc-klustertillägg som distribuerar både en koordinatortjänst för Event Grid och en Event Grid operator. Mer information om den a broker-funktionen och operatorn finns i Event Grid på Kubernetes-komponenter. Azure Arc funktioner för klustertillägg ger livscykelhantering med hjälp Azure Resource Manager(ARM)-kontrollplansåtgärder för att Event Grid distribueras till Azure Arc-aktiverade Kubernetes-kluster.

Anteckning

Förhandsversionen av tjänsten stöder bara en enda instans av Event Grid-tillägget på ett Kubernetes-kluster eftersom Event Grid-tillägget för närvarande definieras som ett klusteromfångstillägg. Det finns inget stöd för distributioner med namnområdesomfång för Event Grid som skulle tillåta att flera instanser distribueras till ett kluster. Mer information om tilläggsomfång finns i Skapa tilläggsinstans och sök efter scope .

Förutsättningar

Kontrollera att följande krav är uppfyllda innan Event Grid installationen av en ny installation.

  1. Ett kluster som körs på en av kubernetes-distributionerna som stöds.
  2. En Azure-prenumeration.
  3. PKI-certifikat som ska användas för att upprätta en HTTPS-anslutning med den Event Grid meddelandekö.
  4. Anslut klustret till Azure Arc.

Få support

Om du får problem kan du gå till felsökningsavsnittet om du behöver hjälp med vanliga villkor. Om du fortfarande har problem kan du skapa en Azure-supportbegäran.

Krav för PKI-certifikat

Den Event Grid meddelandekö (server) betjänar två typer av klienter. Serverautentisering görs med hjälp av certifikat. Klientautentisering görs med antingen certifikat eller SAS-nycklar baserat på klienttyp.

  • Event Grid som gör kontrollplansbegäranden till den autjämnare Event Grid 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 broker och Event Grid-operatorn använder vi PKI-certifikat under installationen Event Grid tillägget. Här är de allmänna kraven för dessa PKI-certifikat:

  1. Certifikaten och nycklarna måste vara X.509-certifikat och Privacy-Enhanced Mail PEM-kodad.

  2. Om du Event Grid certifikatutjämning (server) under installationen måste du ange:

    1. Ett CA-certifikat
    2. Ett offentligt certifikat
    3. En privat nyckel
  3. Om du Event Grid certifikat för operatorn (klient) måste du ange:

    1. Ett CA-certifikat
    2. Ett offentligt certifikat
    3. En privat nyckel

    Publiceringsklienter kan använda ca Event Grid certifikatutjämning för att verifiera servern vid publicering av händelser till ett ämne.

    Viktigt

    Även om en domän som är associerad med klienten kan ha fler än ett offentligt certifikat utfärdat av olika certifikatutfärdare, tillåter Event Grid på Kubernetes endast att ett enda CA-certifikat laddas upp för klienter vid installation av Event Grid. Därför bör certifikaten för Event Grid-operatören utfärdas (signeras) av samma certifikatutfärdare för att certifikatkedjans validering ska lyckas och en TLS-session upprättas.

  4. När du konfigurerar eget namn (CN) för server- och klientcertifikat kontrollerar du att de skiljer sig från det CN som angetts för certifikatutfärdarecertifikatet.

    Viktigt

    För tidiga konceptbevisfaser kan själv signerade certifikat vara ett alternativ, men i allmänhet ska rätt PKI-certifikat som signerats av en certifikatutfärdare (CA) köpas in och användas.

Installera med Azure Portal

  1. På Azure Portal du (fältet längst upp) efter Azure Arc

  2. Välj Kuberntes-kluster på menyn till vänster i avsnittet Infrastruktur

  3. Under listan över kluster letar du upp det som du vill installera Event Grid och markerar det. Översiktssidan för klustret visas.

    Välj ditt Kubernetes-kluster

  4. Välj Tillägg i Inställningar på den vänstra menyn.

  5. Välj + Lägg till. En sida som visar tillgängliga Azure Arc Kubernetes-tillägg visas.

    Klustertillägg – knappen Lägg till

  6. På sidan Ny resurs väljer du Event Grid på Kubernetes-tillägget.

    Välj Event Grid på Kubernetes-tillägg

  7. På sidan Event Grid Kubernetes-tillägg väljer du Skapa.

    Välj Skapa Kubernetes-tillägg

  8. fliken Grundläggande inställningar på sidan Installera Event Grid följer du dessa steg.

    1. Avsnittet Project information visar skrivskyddade prenumerations- och resursgruppsvärden eftersom Azure Arc-tillägg distribueras under samma Azure-prenumeration och resursgrupp för det anslutna kluster som de är installerade på.

    2. Ange ett namn i Event Grid för tilläggsnamnet. Det här namnet ska vara unikt bland andra Azure Arc tillägg som distribueras till samma Azure Arc anslutna klustret.

    3. För Frisläpp namnområde kanske du vill ange namnet på ett Kubernetes-namnområde där Event Grid kommer att 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.

    4. I Event Grid koordinatorinformation visas tjänsttypen. Den Event Grid meddelandekö, som är den komponent som exponerar ämnets slutpunkter för vilka händelser skickas, exponeras som en Kubernetes-tjänsttyp ClusterIP. Ip-adresserna som tilldelats till alla ämnen använder därför det privata IP-utrymme som konfigurerats för klustret.

    5. Ange det lagringsklassnamn som du vill använda för den a broker och som stöds av kubernetes-distributionen. Om du till exempel använder AKS kan du använda , som azurefile använder Azure Standard Storage. Mer information om fördefinierade lagringsklasser som stöds av AKS finns i Storage klasser i AKS. Om du använder andra Kubernetes-distributioner kan du läsa kubernetes-distributionsdokumentationen för fördefinierade lagringsklasser som stöds eller hur du kan tillhandahålla egna.

    6. Storage storlek. Standardvärdet är 1 GiB. Överväg inmatningshastigheten när du avgör lagringens storlek. Inmatningsfrekvensen i MiB/sekund mätt som storleken på dina händelser gånger publiceringsfrekvensen (händelser per sekund) i alla ämnen på den autjämnare för Event Grid är en viktig faktor vid allokering av lagring. Händelser är tillfälliga till sin natur och när de har levererats finns det ingen lagringsförbrukning för dessa händelser. Inmatningshastigheten är en huvuddrivrutin för lagringsanvändning, men det är inte den enda. Konfiguration av metadata som innehåller ämnes- och händelseprenumeration förbrukar också lagringsutrymme, men det kräver normalt en mindre mängd lagringsutrymme än de händelser som matas in och levereras av Event Grid.

    7. Minnesgräns. Standardvärdet är 1 GiB.

    8. Minnesbegäran. Standardvärdet är 200 MiB. Det här fältet kan inte redigeras.

      Installera Event Grid tillägg – sidan Grunder

    9. Välj Nästa: Konfiguration längst ned på sidan.

  9. På fliken Konfiguration på sidan Installera Event Grid gör du följande:

    1. Aktivera HTTP-kommunikation (inte säker). Markera den här kryssrutan om du vill använda en icke-säker kanal när klienterna kommunicerar med den autjämningsbaserade Event Grid meddelandekö.

      Viktigt

      Om du aktiverar det här alternativet kommer all kommunikation med den Event Grid koordinatorn att använda HTTP som transport. Därför kommer alla publiceringsklienter och Event Grid inte kommunicera med den autjämnande Event Grid på ett säkert sätt. Du bör endast använda det här alternativet i ett tidigt skede av utvecklingen.

    2. Om du inte har aktivera HTTP-kommunikation väljer du var och en av de PKI-certifikatfiler som du har skaffat och uppfyller PKI-certifikatkraven.

      Installera Event Grid tillägg – konfigurationssida

    3. Välj Nästa: Övervakning längst ned på sidan.

  10. På fliken Övervakning på sidan Installera Event Grid gör du följande:

    1. Välj Aktivera mått (valfritt). Om du väljer det här alternativet Event Grid på Kubernetes mått för ämnen och händelseprenumerationer med Prometheus-expositionsformatet.

      Installera Event Grid tillägg – sidan Övervakning

    2. Välj Nästa: Taggar för att gå till sidan Taggar.

  11. Gör följande på sidan Taggar:

    1. Definiera taggar, om det behövs.

      Installera Event Grid tillägg – sidan Taggar

    2. Välj Granska + skapa längst ned på sidan.

  12. På fliken Granska + skapa väljer du Skapa.

    Installera Event Grid tillägg – sidan Granska och skapa

    Viktigt

    Installationen av Event Grid är en asynkron åtgärd som kan köras längre på 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 i en bash-session köra följande kommando för att kontrollera om Event Grid Broker- 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 exempel på utdata:

    NAME                                  READY   STATUS    RESTARTS   AGE
    eventgrid-broker-568f75976-wxkd2      1/1     Running   0          2m28s
    eventgrid-operator-6c4c6c675d-ttjv5   1/1     Running   0          2m28s    
    

    Viktigt

    Du måste skapa en anpassad plats innan du försöker distribuera Event Grid avsnitt. 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.

  13. När distributionen har lyckats kan du se en post på sidan Tillägg med det namn som du angav för ditt Event Grid tillägg. Om du ser Väntande för Installationsstatus väntar du några minuter och väljer sedan Uppdatera i verktygsfältet.

    Event Grid tillägg – installerat

Installera med Azure CLI

  1. Starta en shell-session. Du kan starta en session på datorn eller öppna en webbläsare för https://shell.azure.com .

  2. 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 med namnet som innehåller det offentliga certifikatet, CA-certifikatet eller nyckeln för filename operatorn (klienten) eller koordinatorn (server). Alla certifikat som tillhandahålls ska vara base64-kodade utan radbrytning. Därför används kommandot base64 --wrap=0 .

    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 den a broker (första konfigurationsobjektet ovan) heter ska den första konfigurationsraden client.cer se ut som följande:

    \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 client.cer --wrap=0)\",    
    
  3. Skapa konfigurationsfilen settings-extension.json . Den här filen skickas som en parameter när du skapar Event Grid tillägget.

    Viktigt

    Du får inte ändra värdena för ServiceAccount och serviceType . Under förhandsversionen är den enda Kubernetes-tjänsttypen som stöds ClusterIP .

    För storageClassName anger du den lagringsklass som du vill använda för den a broker och som stöds av kubernetes-distributionen. 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 Storage-klasser i AKS. Om du använder andra Kubernetes-distributioner kan du läsa kubernetes-distributionsdokumentationen för fördefinierade lagringsklasser som stöds eller hur du kan ange egna.

    Ange reporterType till för att aktivera mått för ämnen och prometheus händelseprenumerationer med 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
    
  4. Skapa ett Kubernetes-tillägg som installerar Event Grid komponenter i klustret.

    För parametrar cluster-name och måste du använda samma namn som när du anslöt klustret till resource-group Azure Arc.

    release-namespace är det namnområde Event Grid distribueras till. Standardvärdet är eventgrid-system. Du kanske vill ange ett värde som åsidosätter 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 är det cluster 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 på ett Kubernetes-kluster. Det finns inget stöd för distributioner med namnområdesomfång ännu. Mer information om tilläggsomfång finns i Skapa tilläggsinstans och sök efter scope .

    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    
    
  5. 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 ska vara om de Event Grid Installed tilläggskomponenterna har distribuerats.

Anpassad plats

Viktigt

Du måste skapa en anpassad plats innan du försöker distribuera Event Grid avsnitt. Du kan skapa en anpassad plats med hjälp av Azure Portal.

Felsökning

Azure Arc problem med att ansluta kluster

Problem: När du navigerar till Azure Arc och klickar på Kubernetes-kluster på menyn till vänster visas inte Kubernetes-klustret där jag vill installera Event Grid.

Lösning: Kubernetes-klustret har inte registrerats med Azure. Följ stegen i artikeln om Anslut ett befintligt Kubernetes-kluster för att Azure Arc. Om du har problem under det här steget kan du skicka en supportbegäran till Azure Arc aktiverat Kubernetes-team.

Event Grid problem med 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. Tillägget Event Grid är begränsad på klusternivå, vilket innebär att endast en instans kan installeras på ett kluster."

Förklaring: Du har redan Event Grid installerat. Förhandsversionen av den Event Grid stöder bara en instans Event Grid-tillägg 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.