Sdílet prostřednictvím


Instalace rozšíření Event Gridu v clusteru Kubernetes s podporou Služby Azure Arc

Tento článek vás provede postupem instalace Event Gridu v clusteru Kubernetes s podporou Azure Arc.

Pro stručnost se tento článek týká rozšíření Event Grid v Kubernetes jako Event Grid v Kubernetes nebo jen Event Gridu v Kubernetes.

Důležité

Event Grid v Kubernetes s Azure Arc je aktuálně ve verzi Public Preview. Tato verze Preview se poskytuje bez smlouvy o úrovni služeb a nedoporučuje se pro úlohy v produkčním prostředí. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Podporované distribuce Kubernetes

Následují podporované distribuce Kubernetes, do kterých je možné službu Event Grid nasadit a spustit.

  1. Podporované distribuce Kubernetes v Azure AKS
  2. RedHat OpenShift Container Platform.

Rozšíření Event Gridu

Operace, která nainstaluje instanci služby Event Grid do clusteru Kubernetes, je vytvoření rozšíření clusteru Azure Arc, které nasadí zprostředkovatele Event Gridu i operátora Event Gridu. Další informace o funkci zprostředkovatele a operátora najdete v tématu Event Grid v komponentách Kubernetes. Funkce rozšíření clusteru Azure Arc poskytuje správu životního cyklu pomocí operací řídicí roviny Azure Resource Manageru (ARM) do Event Gridu nasazeného do clusterů Kubernetes s podporou Azure Arc.

Poznámka:

Verze Preview služby podporuje pouze jednu instanci rozšíření Event Gridu v clusteru Kubernetes, protože rozšíření Event Gridu je aktuálně definováno jako rozšíření s oborem clusteru. Pro Event Grid zatím neexistuje žádná podpora nasazení s oborem názvů, která by umožňovala nasazení více instancí do clusteru. Další informace naleznete v tématu Obor rozšíření.

Požadavky

Než budete pokračovat v instalaci event Gridu, ujistěte se, že jsou splněné následující požadavky.

  1. Cluster spuštěný v jedné z podporovaných distribucí Kubernetes.
  2. Předplatné Azure.
  3. Certifikáty PKI, které se mají použít k vytvoření připojení HTTPS ke zprostředkovatele Event Gridu.
  4. Připojte cluster ke službě Azure Arc.

Získání podpory

Pokud narazíte na problém, nápovědu k běžným podmínkám najdete v části Řešení potíží . Pokud máte stále problémy, vytvořte žádost o podpora Azure.

Požadavky na certifikát PKI

Zprostředkovatel Event Gridu (server) slouží dvěma druhy klientů. Ověřování serveru se provádí pomocí certifikátů. Ověřování klientů se provádí pomocí certifikátů nebo klíčů SAS na základě typu klienta.

  • Operátory Event Gridu, které provádějí požadavky roviny řízení na zprostředkovatele Event Gridu, se ověřují pomocí certifikátů.
  • Vydavatelé Event Gridu, kteří události vydavatele do tématu Event Gridu ověřují pomocí klíčů SAS tématu.

K vytvoření zabezpečené komunikace HTTPS s zprostředkovatelem Event Gridu a operátorem Event Gridu používáme certifikáty PKI během instalace rozšíření Event Grid. Tady jsou obecné požadavky na tyto certifikáty PKI:

  1. Certifikáty a klíče musí být certifikáty X.509 a kódované PEM pro ochranu osobních údajů .

  2. Pokud chcete nakonfigurovat certifikát zprostředkovatele Event Gridu (serveru) během instalace, budete muset zadat:

    1. Certifikát certifikační autority
    2. Veřejný certifikát
    3. Privátní klíč
  3. Pokud chcete nakonfigurovat certifikát operátora Event Gridu (klienta), musíte zadat:

    1. Certifikát certifikační autority
    2. Veřejný certifikát
    3. Privátní klíč

    Klienti publikování můžou certifikát certifikační autority zprostředkovatele Event Gridu použít k ověření serveru při publikování událostí do tématu.

    Důležité

    Zatímco doména přidružená k klientovi může mít více než jeden veřejný certifikát vydaný různými certifikačními autoritami, Služba Event Grid v Kubernetes umožňuje při instalaci služby Event Grid nahrávat pouze jeden certifikát certifikační autority pro klienty. V důsledku toho by měly být certifikáty pro operátor služby Event Grid vydány (podepsané) stejnou certifikační autoritou, aby bylo ověření řetězu certifikátů úspěšné a úspěšně navázána relace PROTOKOLU TLS.

  4. Při konfiguraci běžného názvu (CN) pro serverové a klientské certifikáty se ujistěte, že se liší od cn zadaného pro certifikát certifikační autority.

    Důležité

    V případě počátečních fází testování konceptu můžou být certifikáty podepsané svým držitelem možnost, ale obecně by se měly používat správné certifikáty PKI podepsané certifikační autoritou (CA).

Instalace pomocí webu Azure Portal

  1. Na webu Azure Portal vyhledejte (pole nahoře) pro Azure Arc.

  2. V levé nabídce v části Infrastruktura vyberte cluster Kubernetes.

  3. V seznamu clusterů vyhledejte ten, do kterého chcete službu Event Grid nainstalovat, a vyberte ji. Zobrazí se stránka Přehled clusteru.

    Výběr clusteru Kubernetes

  4. V nabídce vlevo vyberte Rozšíření ve skupině Nastavení .

  5. Vyberte + Přidat. Zobrazí se stránka s dostupnými rozšířeními Kubernetes Služby Azure Arc.

    Rozšíření clusteru – tlačítko Přidat

  6. Na stránce Nový prostředek vyberte Event Grid v rozšíření Kubernetes.

    Výběr event Gridu v rozšíření Kubernetes

  7. Na stránce Event Gridu na rozšíření Kubernetes vyberte Vytvořit.

    Výběr možnosti Vytvořit rozšíření Kubernetes

  8. Na kartě Základy na stránce Install Event Grid (Instalace event gridu) postupujte takto.

    1. V části Podrobnosti projektu se zobrazují hodnoty předplatného a skupiny prostředků jen pro čtení, protože rozšíření Azure Arc jsou nasazená ve stejném předplatném Azure a skupině prostředků připojeného clusteru, na kterém jsou nainstalované.

    2. Do pole pro název rozšíření Event Gridu zadejte název . Tento název by měl být jedinečný mezi dalšími rozšířeními Azure Arc nasazenými do stejného clusteru připojeného ke službě Azure Arc.

    3. V případě oboru názvů vydaných verzí můžete chtít zadat název oboru názvů Kubernetes, do kterého se nasadí komponenty Event Gridu. Můžete například chtít mít jeden obor názvů pro všechny služby s podporou Azure Arc nasazené do clusteru. Výchozí hodnota je eventgrid-system. Pokud zadaný obor názvů neexistuje, vytvoří se za vás.

    4. V části Podrobnosti o zprostředkovateli Event Gridu se zobrazí typ služby. Zprostředkovatel Event Gridu, což je komponenta, která zveřejňuje koncové body tématu, pro které se události odesílají, je vystavena jako ClusterIP typu služby Kubernetes. IP adresy přiřazené ke všem tématům proto používají privátní prostor IP adres nakonfigurovaný pro cluster.

    5. Zadejte název třídy úložiště, který chcete použít pro zprostředkovatele a který podporuje vaše distribuce Kubernetes. Pokud například používáte AKS, můžete použít azurefileúložiště Azure Standard. Další informace o předdefinovaných třídách úložiště podporovaných službou AKS najdete v tématu Třídy úložiště v AKS. Pokud používáte jiné distribuce Kubernetes, prohlédněte si dokumentaci k distribuci Kubernetes pro předdefinované třídy úložiště nebo způsob, jakým můžete zadat vlastní.

    6. Velikost úložiště. Výchozí hodnota je 1 GiB. Při určování velikosti úložiště zvažte rychlost příjmu dat. Míra příjmu dat v MiB/sekundu měřená jako velikost událostí krát míru publikování (události za sekundu) ve všech tématech na zprostředkovateli Event Gridu je klíčovým faktorem při přidělování úložiště. Události jsou v přírodě přechodné a jakmile se doručí, pro tyto události není k dispozici žádná spotřeba úložiště. I když je rychlost příjmu dat hlavním ovladačem pro použití úložiště, není to jediný. Metadata, která uchovávají konfiguraci tématu a odběru událostí, také spotřebovávají prostor úložiště, ale obvykle vyžaduje nižší velikost úložného prostoru než události ingestované a doručované službou Event Grid.

    7. Limit paměti. Výchozí hodnota je 1 GiB.

    8. Požadavek na paměť. Výchozí hodnota je 200 MiB. Toto pole není možné upravovat.

      Instalace rozšíření Event Gridu – stránka Základy

    9. Vyberte Další: Konfigurace v dolní části stránky.

  9. Na kartě Konfigurace na stránce Instalace Event Gridu proveďte následující kroky:

    1. Povolte komunikaci HTTP (není zabezpečená). Toto políčko zaškrtněte, pokud chcete použít nezabezpečený kanál, když klienti komunikují s zprostředkovatelem Event Gridu.

      Důležité

      Když tuto možnost povolíte, bude komunikace s zprostředkovatelem Event Gridu používat protokol HTTP jako přenos. Proto žádný klient publikování a operátor Event Gridu nebudou bezpečně komunikovat s zprostředkovatelem Event Gridu. Tuto možnost byste měli použít pouze v počátečních fázích vývoje.

    2. Pokud jste nepovolili komunikaci HTTP, vyberte všechny soubory certifikátu PKI, které jste si pořili, a splňovat požadavky na certifikát PKI.

      Instalace rozšíření Event Gridu – stránka konfigurace

    3. Vyberte další : Monitorování v dolní části stránky.

  10. Na kartě Monitorování na stránce Instalace event Gridu proveďte následující kroky:

    1. Vyberte Povolit metriky (volitelné). Pokud vyberete tuto možnost, Event Grid v Kubernetes zveřejňuje metriky pro témata a odběry událostí pomocí formátu expozice Prometheus.

      Instalace rozšíření Event Gridu – stránka Monitorování

    2. Vyberte Další: Značky a přejděte na stránku Značky .

  11. Na stránce Značky proveďte následující kroky:

    1. V případě potřeby definujte značky.

      Instalace rozšíření Event Gridu – stránka Značky

    2. Vyberte Zkontrolovat a vytvořit v dolní části stránky.

  12. Na kartě Revize a vytvoření vyberte Vytvořit.

    Instalace rozšíření Event Gridu – Kontrola a vytvoření stránky

    Důležité

    Instalace služby Event Grid je asynchronní operace, která může běžet déle v clusteru Kubernetes než čas, kdy se na webu Azure Portal zobrazí oznámení o dokončení nasazení. Než se pokusíte vytvořit vlastní umístění (další krok), počkejte aspoň 5 minut, až se zobrazí oznámení o dokončení nasazení. Pokud máte přístup ke clusteru Kubernetes, můžete v relaci Bash spustit následující příkaz, který ověří, jestli jsou pody operátoru Event Gridu a operátoru Event Gridu ve spuštěném stavu, což by značilo, že se instalace dokončila:

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

    Tady je ukázkový výstup:

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

    Důležité

    Před pokusem o nasazení témat Event Gridu je potřeba vytvořit vlastní umístění. Pokud chcete vytvořit vlastní umístění, můžete vybrat stránku Kontextu v dolní části 5 minut po zobrazení oznámení "Vaše nasazení je dokončeno". Případně můžete vytvořit vlastní umístění pomocí webu Azure Portal. Další informace najdete v dokumentaci k vlastnímu umístění.

  13. Po úspěšném nasazení uvidíte na stránce Rozšíření položku s názvem, který jste zadali do rozšíření Event Grid. Pokud se zobrazí stav Čeká na instalaci, počkejte několik minut a pak na panelu nástrojů vyberte Aktualizovat.

    Rozšíření Event Grid – nainstalované

Instalace pomocí Azure CLI

  1. Spusťte relaci prostředí. Relaci můžete spustit na počítači nebo můžete otevřít prohlížeč pro https://shell.azure.com.

  2. Vytvořte konfigurační soubor protected-settings-extension.json. Tento soubor se předá jako parametr při vytváření rozšíření Event Grid.

    V následujícím příkazu a v každém řádku konfigurace nahraďte filename odpovídajícím způsobem název, který obsahuje veřejný certifikát, certifikát certifikační autority nebo klíč operátora (klienta) nebo zprostředkovatele (serveru). Všechny poskytnuté certifikáty by měly být zakódované s kódováním Base64 bez zalamování řádků. Proto se používá base64 --wrap=0 příkaz.

    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 
    

    Pokud se například volá client.cerveřejný certifikát pro zprostředkovatele (první položka konfigurace výše), měl by první řádek konfigurace vypadat takto:

    \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 client.cer --wrap=0)\",    
    
  3. Vytvořte konfigurační soubor settings-extension.json. Tento soubor se předá jako parametr při vytváření rozšíření Event Grid.

    Důležité

    Nesmíte změnit hodnoty pro ServiceAccount a serviceType. Ve verzi Preview se ClusterIPpodporuje pouze typ služby Kubernetes.

    Pro storageClassName zajištění třídy úložiště, kterou chcete použít pro zprostředkovatele a která je podporována vaší distribucí Kubernetes. Pokud například používáte AKS, můžete použít azurefile úložiště Azure Standard. Další informace o předdefinovaných třídách úložiště podporovaných službou AKS najdete v tématu Třídy úložiště v AKS. Pokud používáte jiné distribuce Kubernetes, prohlédněte si dokumentaci k distribuci Kubernetes pro předdefinované třídy úložiště nebo způsob, jakým můžete zadat vlastní.

    Nastavte reporterType na prometheus povolení metrik pro témata a odběry událostí pomocí formátu expozice Prometheus.

    Důležité

    Během verze Preview je použití klienta Prometheus jediným podporovaným mechanismem pro získání metrik.

    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. Vytvořte rozšíření Kubernetes, které nainstaluje komponenty Event Gridu do clusteru.

    U parametrů cluster-name a resource-groupje nutné použít stejné názvy, které jste zadali při připojení clusteru ke službě Azure Arc.

    release-namespace je obor názvů, do kterého se nasadí komponenty Event Gridu. Výchozí hodnota je eventgrid-system. Můžete zadat hodnotu, která má přepsat výchozí hodnotu. Můžete například chtít mít jeden obor názvů pro všechny služby s podporou Azure Arc nasazené do clusteru. Pokud zadaný obor názvů neexistuje, vytvoří se za vás.

    Důležité

    Během verze cluster Preview je jediným podporovaným oborem při vytváření nebo aktualizaci rozšíření Event Gridu. To znamená, že služba podporuje pouze jednu instanci rozšíření Event Gridu v clusteru Kubernetes. Nasazení s oborem názvů zatím nepodporuje. Další informace naleznete v tématu Obor rozšíření.

    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    
    

    Další informace o příkazu rozhraní příkazového řádku najdete v tématu az k8s-extension create. Všimněte si, že parametr můžete použít --config-file k předání názvu souboru JSON, který obsahuje informace o konfiguraci související s Event Gridem. Pokud chcete podporovat protokol HTTP, uveďte následující nastavení.

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

    Tady je ukázka settings-extension.json s výše uvedeným nastavením.

    {
        "Microsoft.CustomLocation.ServiceAccount": "eventgrid-operator",
        "eventgridbroker.service.serviceType": "ClusterIP",
        "eventgridbroker.service.supportedProtocols[0]": "http",
        "eventgridbroker.dataStorage.storageClassName": "default",
        "eventgridbroker.diagnostics.metrics.reporterType": "prometheus"
    }    
    
  5. Ověřte, že se rozšíření Event Grid úspěšně nainstalovalo.

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

    Vlastnost installedState by měla být Installed , pokud se komponenty rozšíření Event Gridu úspěšně nasadily.

Vlastní umístění

Důležité

Před pokusem o nasazení témat Event Gridu je potřeba vytvořit vlastní umístění. Vlastní umístění můžete vytvořit pomocí webu Azure Portal.

Řešení problému

Problémy s clusterem s připojením ke službě Azure Arc

Problém: Při přechodu na Azure Arc a výběru clusteru Kubernetes v nabídce na levé straně se na zobrazené stránce nezobrazí cluster Kubernetes, ve kterém chci nainstalovat Event Grid.

Řešení: Váš cluster Kubernetes není zaregistrovaný v Azure. Postupujte podle pokynů v článku Připojení existujícího clusteru Kubernetes ke službě Azure Arc. Pokud máte v tomto kroku problém, vytvořte žádost o podporu s týmem Kubernetes s podporou Azure Arc.

Problémy s rozšířením Event Gridu

Problém: Při pokusu o instalaci rozšíření Event Grid se zobrazí následující zpráva: Neplatná operace – Instance Event Gridu už byla v tomto připojeném clusteru Kubernetes nainstalovaná. Rozšíření Event Gridu je vymezeno na úrovni clusteru, což znamená, že do clusteru je možné nainstalovat pouze jednu instanci."

Vysvětlení: Službu Event Grid už máte nainstalovanou. Verze Preview služby Event Grid podporuje pouze jednu instanci rozšíření Event Grid nasazenou do clusteru.

Další kroky

Vytvořte vlastní umístění a pak postupujte podle pokynů v rychlých startech cloudových událostí do webhooků s Azure Event Gridem v Kubernetes.