Delen via


Event Grid-extensie installeren in Kubernetes-cluster met Azure Arc

In dit artikel wordt u begeleid bij de stappen voor het installeren van Event Grid op een Kubernetes-cluster met Azure Arc.

Voor kortheid verwijst dit artikel naar 'Event Grid op Kubernetes-extensie' als 'Event Grid op Kubernetes' of alleen 'Event Grid'.

Belangrijk

Event Grid in Kubernetes met Azure Arc is momenteel beschikbaar als openbare preview. Deze preview-versie wordt aangeboden zonder service level agreement en wordt niet aanbevolen voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.

Ondersteunde Kubernetes-distributies

Hieronder vindt u de ondersteunde Kubernetes-distributies waarnaar Event Grid kan worden geïmplementeerd en uitgevoerd.

  1. Azure AKS ondersteunde Kubernetes-distributies.
  2. RedHat OpenShift Container Platform.

Event Grid-extensie

De bewerking waarmee een Event Grid-service-exemplaar op een Kubernetes-cluster wordt geïnstalleerd, is het maken van een Azure Arc-clusterextensie, waarmee zowel een Event Grid-broker als een Event Grid-operator wordt geïmplementeerd. Zie Event Grid op Kubernetes-onderdelen voor meer informatie over de functie van de broker en operator. Azure Arc-clusteruitbreidingsfunctie biedt levenscyclusbeheer met behulp van ARM-besturingsvlakbewerkingen (Azure Resource Manager) voor Event Grid die is geïmplementeerd in Kubernetes-clusters met Azure Arc.

Notitie

De preview-versie van de service ondersteunt slechts één exemplaar van de Event Grid-extensie op een Kubernetes-cluster omdat de Event Grid-extensie momenteel is gedefinieerd als een extensie met clusterbereik. Er is geen ondersteuning voor implementaties met naamruimtebereik voor Event Grid, waardoor meerdere exemplaren in een cluster kunnen worden geïmplementeerd. Zie Uitbreidingsbereik voor meer informatie.

Vereisten

Voordat u doorgaat met de installatie van Event Grid, moet u ervoor zorgen dat aan de volgende vereisten wordt voldaan.

  1. Een cluster dat wordt uitgevoerd op een van de ondersteunde Kubernetes-distributies.
  2. Een Azure-abonnement.
  3. PKI-certificaten die moeten worden gebruikt voor het tot stand brengen van een HTTPS-verbinding met de Event Grid-broker.
  4. Verbind uw cluster met Azure Arc.

Ondersteuning zoeken

Als u een probleem tegenkomt, raadpleegt u de sectie Probleemoplossing voor hulp bij algemene voorwaarden. Als u nog steeds problemen ondervindt, maakt u een ondersteuning voor Azure aanvraag.

PKI-certificaatvereisten

De Event Grid-broker (server) dient twee soorten clients. Serververificatie wordt uitgevoerd met behulp van certificaten. Clientverificatie wordt uitgevoerd met behulp van certificaten of SAS-sleutels op basis van het clienttype.

  • Event Grid-operators die besturingsvlakaanvragen indienen bij de Event Grid-broker, worden geverifieerd met behulp van certificaten.
  • Event Grid-uitgevers die uitgeversgebeurtenissen naar een Event Grid-onderwerp uitvoeren, worden geverifieerd met de SAS-sleutels van het onderwerp.

Om een beveiligde HTTPS-communicatie met de Event Grid-broker en Event Grid-operator tot stand te brengen, gebruiken we PKI-certificaten tijdens de installatie van de Event Grid-extensie. Hier volgen de algemene vereisten voor deze PKI-certificaten:

  1. De certificaten en sleutels moeten X.509-certificaten zijn en PEM-codering met privacy-enhanced mail.

  2. Als u het Event Grid Broker-certificaat (server) tijdens de installatie wilt configureren, moet u het volgende opgeven:

    1. Een CA-certificaat
    2. Een openbaar certificaat
    3. Een persoonlijke sleutel
  3. Als u het Event Grid-operatorcertificaat (clientcertificaat) wilt configureren, moet u het volgende opgeven:

    1. Een CA-certificaat
    2. Een openbaar certificaat
    3. Een persoonlijke sleutel

    Publicerende clients kunnen het Event Grid Broker CA-certificaat gebruiken om de server te valideren bij het publiceren van gebeurtenissen naar een onderwerp.

    Belangrijk

    Hoewel een domein dat is gekoppeld aan de client mogelijk meer dan één openbaar certificaat heeft dat is uitgegeven door verschillende certificeringsinstanties, staat Event Grid op Kubernetes het uploaden van één CA-certificaat voor clients toe bij het installeren van Event Grid. Als gevolg hiervan moeten de certificaten voor de Event Grid-operator worden uitgegeven (ondertekend) door dezelfde CA om de validatie van de certificaatketen te laten slagen en een TLS-sessie tot stand te brengen.

  4. Wanneer u de algemene naam (CN) configureert voor server- en clientcertificaten, moet u ervoor zorgen dat deze verschillen van de CN die is opgegeven voor het certificaat van de certificeringsinstantie.

    Belangrijk

    Voor vroege proof-of-concept-fasen kunnen zelfondertekende certificaten een optie zijn, maar over het algemeen moeten de juiste PKI-certificaten die zijn ondertekend door een certificeringsinstantie (CA) worden aangeschaft en gebruikt.

Installeren met behulp van Azure Portal

  1. Zoek in Azure Portal (veld bovenaan) naar Azure Arc

  2. Selecteer Kubernetes-cluster in het menu aan de linkerkant in de sectie Infrastructuur

  3. Zoek onder de lijst met clusters het cluster waarnaar u Event Grid wilt installeren en selecteer deze. De pagina Overzicht voor het cluster wordt weergegeven.

    Uw Kubernetes-cluster selecteren

  4. Selecteer Extensies in de groep Instellingen in het menu links.

  5. Selecteer + Toevoegen. Er wordt een pagina weergegeven met de beschikbare Azure Arc Kubernetes-extensies.

    Clusterextensies - knop Toevoegen

  6. Selecteer Event Grid op de kubernetes-extensie op de pagina Nieuwe resource.

    Event Grid selecteren in kubernetes-extensie

  7. Selecteer Maken op de pagina Event Grid op kubernetes-extensie.

    Kubernetes-extensie maken selecteren

  8. Voer de volgende stappen uit op het tabblad Basisbeginselen van de pagina Event Grid installeren.

    1. In de sectie Projectdetails worden alleen-lezen abonnements- en resourcegroepwaarden weergegeven, omdat Azure Arc-extensies worden geïmplementeerd onder hetzelfde Azure-abonnement en dezelfde resourcegroep van het verbonden cluster waarop ze zijn geïnstalleerd.

    2. Geef een naam op in het naamveld van de Event Grid-extensie . Deze naam moet uniek zijn onder andere Azure Arc-extensies die zijn geïmplementeerd in hetzelfde met Azure Arc verbonden cluster.

    3. Voor releasenaamruimte wilt u mogelijk de naam opgeven van een Kubernetes-naamruimte waarin Event Grid-onderdelen worden geïmplementeerd. U wilt bijvoorbeeld één naamruimte hebben voor alle Azure Arc-services die zijn geïmplementeerd in uw cluster. De standaardwaarde is eventgrid-system. Als de opgegeven naamruimte niet bestaat, wordt deze voor u gemaakt.

    4. In de sectie Details van Event Grid-broker wordt het servicetype weergegeven. De Event Grid-broker, het onderdeel waarmee de onderwerpeindpunten worden weergegeven waarop gebeurtenissen worden verzonden, wordt weergegeven als een Kubernetes-servicetype ClusterIP. Daarom gebruiken de IP-adressen die zijn toegewezen aan alle onderwerpen de privé-IP-ruimte die is geconfigureerd voor het cluster.

    5. Geef de naam van de opslagklasse op die u wilt gebruiken voor de broker en die wordt ondersteund door uw Kubernetes-distributie. Als u bijvoorbeeld AKS gebruikt, kunt u gebruikmaken azurefilevan Azure Standard Storage. Zie Opslagklassen in AKS voor meer informatie over vooraf gedefinieerde opslagklassen die worden ondersteund door AKS. Als u andere Kubernetes-distributies gebruikt, raadpleegt u uw Kubernetes-distributiedocumentatie voor vooraf gedefinieerde opslagklassen die worden ondersteund of de manier waarop u uw eigen opslagklassen kunt opgeven.

    6. Opslaggrootte. De standaardwaarde is 1 GiB. Houd rekening met de opnamesnelheid bij het bepalen van de grootte van uw opslag. Opnamesnelheid in MiB/seconde, gemeten als de grootte van uw gebeurtenissen, is een belangrijke factor bij het toewijzen van opslag in alle onderwerpen over alle onderwerpen in de Event Grid-broker. Gebeurtenissen zijn tijdelijk van aard en zodra ze worden geleverd, is er geen opslagverbruik voor deze gebeurtenissen. Hoewel opnamesnelheid een belangrijk stuurprogramma is voor opslaggebruik, is dit niet de enige. Metagegevens die onderwerp- en gebeurtenisabonnementconfiguratie bevatten, verbruiken ook opslagruimte, maar die vereist normaal gesproken een lagere hoeveelheid opslagruimte dan de gebeurtenissen die zijn opgenomen en worden geleverd door Event Grid.

    7. Geheugenlimiet. De standaardwaarde is 1 GiB.

    8. Geheugenaanvraag. De standaardwaarde is 200 MiB. Dit veld kan niet worden bewerkt.

      Event Grid-extensie installeren - Basispagina

    9. Selecteer Volgende: Configuratie onderaan de pagina.

  9. Voer de volgende stappen uit op het tabblad Configuratie van de pagina Event Grid installeren:

    1. Schakel HTTP-communicatie (niet veilig) in. Schakel dit selectievakje in als u een niet-beveiligd kanaal wilt gebruiken wanneer clients communiceren met de Event Grid-broker.

      Belangrijk

      Als u deze optie inschakelt, wordt de communicatie met de Event Grid-broker gebruikt als transport. Daarom communiceren elke publicatieclient en de Event Grid-operator niet veilig met de Event Grid-broker. U moet deze optie alleen gebruiken tijdens vroege fasen van de ontwikkeling.

    2. Als u HTTP-communicatie niet hebt ingeschakeld, selecteert u elk van de PKI-certificaatbestanden die u hebt aangeschaft en voldoet u aan de PKI-certificaatvereisten.

      Event Grid-extensie installeren - Configuratiepagina

    3. Selecteer de volgende: Bewaking onder aan de pagina.

  10. Voer op het tabblad Bewaking van de pagina Event Grid installeren de volgende stappen uit:

    1. Selecteer Metrische gegevens inschakelen (optioneel). Als u deze optie selecteert, geeft Event Grid in Kubernetes metrische gegevens weer voor onderwerpen en gebeurtenisabonnementen met behulp van de Prometheus-indeling voor tentoonstellingen.

      Event Grid-extensie installeren - Bewakingspagina

    2. Selecteer Volgende: Tags om naar de pagina Tags te navigeren.

  11. Voer op de pagina Tags de volgende stappen uit:

    1. Definieer indien nodig tags.

      Event Grid-extensie installeren - pagina Tags

    2. Selecteer Controleren en maken onderaan de pagina.

  12. Selecteer op het tabblad Beoordelen en maken de optie Maken.

    Event Grid-extensie installeren - pagina Controleren en maken

    Belangrijk

    De installatie van Event Grid is een asynchrone bewerking die langer kan worden uitgevoerd op het Kubernetes-cluster dan de tijd dat u een melding ziet in De Azure-portal waarin wordt aangegeven dat de implementatie is voltooid. Wacht minstens 5 minuten nadat u een melding ziet dat uw implementatie is voltooid voordat u een aangepaste locatie probeert te maken (volgende stap). Als u toegang hebt tot het Kubernetes-cluster, kunt u in een bash-sessie de volgende opdracht uitvoeren om te controleren of de Event Grid-broker- en Event Grid-operatorpods actief zijn, wat aangeeft dat de installatie is voltooid:

    kubectl get pods -n \<release-namespace-name\>
    

    Dit is de voorbeelduitvoer:

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

    Belangrijk

    Er moet een aangepaste locatie worden gemaakt voordat u Event Grid-onderwerpen implementeert. Als u een aangepaste locatie wilt maken, kunt u de contextpagina onder vijf minuten selecteren nadat de melding 'Uw implementatie is voltooid' wordt weergegeven. U kunt ook een aangepaste locatie maken met behulp van Azure Portal. Zie de documentatie voor aangepaste locatie voor meer informatie.

  13. Nadat de implementatie is voltooid, ziet u een vermelding op de pagina Extensies met de naam die u hebt opgegeven voor de Event Grid-extensie. Als de installatiestatus in behandeling is, wacht u enkele minuten en selecteert u Vernieuwen op de werkbalk.

    Event Grid-extensie - geïnstalleerd

Installeren met behulp van Azure CLI

  1. Start een shell-sessie. U kunt een sessie op uw computer starten of u kunt een browser openen naar https://shell.azure.com.

  2. Configuratiebestand protected-settings-extension.jsonmaken. Dit bestand wordt doorgegeven als een parameter bij het maken van de Event Grid-extensie.

    Vervang in de volgende opdracht en in elk van de configuratieregels filename de naam die het openbare certificaat, HET CA-certificaat of de sleutel voor de operator (client) of broker (server) bevat. Alle opgegeven certificaten moeten base64 worden gecodeerd zonder regelterugloop. Vandaar het gebruik van de base64 --wrap=0 opdracht.

    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 
    

    Als het openbare certificaat voor de broker (eerste configuratie-item hierboven) bijvoorbeeld wordt aangeroepen client.cer, moet de eerste configuratieregel er als volgt uitzien:

    \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 client.cer --wrap=0)\",    
    
  3. Configuratiebestand settings-extension.jsonmaken. Dit bestand wordt doorgegeven als een parameter bij het maken van de Event Grid-extensie.

    Belangrijk

    U mag de waarden voor ServiceAccount en serviceType. Tijdens de preview-versie is ClusterIPhet enige ondersteunde Kubernetes-servicetype.

    Geef storageClassName de opslagklasse op die u wilt gebruiken voor de broker en die wordt ondersteund door uw Kubernetes-distributie. Als u bijvoorbeeld AKS gebruikt, kunt u gebruikmaken azurefile van Azure Standard Storage. Zie Opslagklassen in AKS voor meer informatie over vooraf gedefinieerde opslagklassen die worden ondersteund door AKS. Als u andere Kubernetes-distributies gebruikt, raadpleegt u uw Kubernetes-distributiedocumentatie voor vooraf gedefinieerde opslagklassen die worden ondersteund of de manier waarop u uw eigen opslagklassen kunt opgeven.

    Ingesteld reporterType om metrische gegevens in te prometheus schakelen voor onderwerpen en gebeurtenisabonnementen met behulp van de Prometheus-indeling voor tentoonstellingen.

    Belangrijk

    Tijdens de preview-versie is het gebruik van een Prometheus-client het enige ondersteunde mechanisme om metrische gegevens op te halen.

    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. Maak een Kubernetes-extensie waarmee Event Grid-onderdelen in uw cluster worden geïnstalleerd.

    Voor parameters cluster-name en resource-groupmoet u dezelfde namen gebruiken als wanneer u uw cluster hebt verbonden met Azure Arc.

    release-namespace is de naamruimte waarin Event Grid-onderdelen worden geïmplementeerd. De standaardwaarde is eventgrid-system. Mogelijk wilt u een waarde opgeven om de standaardwaarde te overschrijven. U wilt bijvoorbeeld één naamruimte hebben voor alle Azure Arc-services die zijn geïmplementeerd in uw cluster. Als de opgegeven naamruimte niet bestaat, wordt deze voor u gemaakt.

    Belangrijk

    Tijdens de preview-versie cluster is dit het enige bereik dat wordt ondersteund bij het maken of bijwerken van een Event Grid-extensie. Dat betekent dat de service slechts één exemplaar van de Event Grid-extensie op een Kubernetes-cluster ondersteunt. Er is nog geen ondersteuning voor implementaties met naamruimtebereik. Zie Uitbreidingsbereik voor meer informatie.

    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    
    

    Zie az k8s-extension create voor meer informatie over de CLI-opdracht. U kunt de --config-file parameter gebruiken om de naam van een json-bestand door te geven dat configuratiegegevens bevat die betrekking hebben op Event Grid. Neem de volgende instelling op om HTTP te ondersteunen.

    "eventgridbroker.service.supportedProtocols[0]": "http" 
    

    Hier volgt een voorbeeld settings-extension.json met de bovenstaande instelling.

    {
        "Microsoft.CustomLocation.ServiceAccount": "eventgrid-operator",
        "eventgridbroker.service.serviceType": "ClusterIP",
        "eventgridbroker.service.supportedProtocols[0]": "http",
        "eventgridbroker.dataStorage.storageClassName": "default",
        "eventgridbroker.diagnostics.metrics.reporterType": "prometheus"
    }    
    
  5. Controleer of de Event Grid-extensie is geïnstalleerd.

    az k8s-extension show  --cluster-type connectedClusters --cluster-name <connected_cluster_name> --resource-group <resource_group_of_connected_cluster> --name <event_grid_extension_name>
    

    De installedState eigenschap moet zijn Installed als de Event Grid-extensieonderdelen zijn geïmplementeerd.

Aangepaste locatie

Belangrijk

Er moet een aangepaste locatie worden gemaakt voordat u Event Grid-onderwerpen implementeert. U kunt een aangepaste locatie maken met behulp van Azure Portal.

Probleemoplossing

Problemen met Azure Arc Connect-cluster

Probleem: Wanneer u naar Azure Arc navigeert en Kubernetes-cluster selecteert in het menu aan de linkerkant, wordt op de weergegeven pagina niet het Kubernetes-cluster weergegeven waarin ik Event Grid wil installeren.

Oplossing: Uw Kubernetes-cluster is niet geregistreerd bij Azure. Volg de stappen in het artikel Een bestaand Kubernetes-cluster verbinden met Azure Arc. Als u tijdens deze stap een probleem ondervindt, dient u een ondersteuningsaanvraag in bij het Kubernetes-team met Azure Arc.

Problemen met de Event Grid-extensie

Probleem: Wanneer u een Event Grid-extensie probeert te installeren, krijgt u het volgende bericht: 'Ongeldige bewerking - Er is al een exemplaar van Event Grid geïnstalleerd op dit verbonden Kubernetes-cluster. De Event Grid-extensie is gericht op clusterniveau, wat betekent dat er slechts één exemplaar op een cluster kan worden geïnstalleerd.

Uitleg: U hebt Event Grid al geïnstalleerd. De preview-versie van Event Grid ondersteunt slechts één Exemplaar van de Event Grid-extensie dat is geïmplementeerd in een cluster.

Volgende stappen

Maak een aangepaste locatie en volg de instructies in de quickstart Cloud-gebeurtenissen routeren naar Webhooks met Azure Event Grid in Kubernetes.