Sdílet prostřednictvím


Instalace rozšíření Event Gridu do clusteru Kubernetes s podporou Azure Arc

Tento článek vás provede postupem instalace služby Event Grid v clusteru Kubernetes s podporou Azure Arc .

Pro stručnost tento článek odkazuje na Event Grid v rozšíření Kubernetes jako "Event Grid v Kubernetes" nebo jen "Event Grid".

Důležité

Event Grid v Kubernetes s Azure Arc je v současné době 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íže jsou uvedené podporované distribuce Kubernetes, do kterých je možné službu Event Grid nasadit a spustit.

  1. Azure AKS podporuje distribuce Kubernetes.
  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 Manager (ARM) do služby Event Grid nasazené do clusterů Kubernetes s podporou Azure Arc.

Poznámka

Verze Preview služby podporuje pouze jednu instanci rozšíření Event Grid v clusteru Kubernetes, protože rozšíření Event Gridu je aktuálně definované jako rozšíření s oborem clusteru. Nasazení služby Event Grid s oborem názvů zatím není podporováno, což by umožnilo nasazení více instancí do clusteru. Další informace najdete v tématu Obor rozšíření.

Požadavky

Než budete pokračovat v instalaci služby Event Grid, 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 navázání připojení HTTPS se zprostředkovatelem Event Gridu.
  4. Připojte cluster ke službě Azure Arc.

Získání podpory

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

Požadavky na certifikát PKI

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

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

K navázání zabezpečené komunikace HTTPS se zprostředkovatelem Event Gridu a operátorem Event Gridu používáme při instalaci rozšíření Event Grid certifikáty PKI. Tady jsou obecné požadavky na tyto certifikáty PKI:

  1. Certifikáty a klíče musí být certifikáty X.509 a zakódované PEM pošty s rozšířenými zásadami ochrany osobních údajů .

  2. Pokud chcete během instalace nakonfigurovat certifikát zprostředkovatele (serveru) Event Gridu, 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), budete muset zadat:

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

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

    Důležité

    I když doména přidružená ke klientovi může mít více než jeden veřejný certifikát vystavený různými certifikačními autoritami, Event Grid v Kubernetes umožňuje při instalaci služby Event Grid nahrávat jenom jeden certifikát certifikační autority pro klienty. V důsledku toho by certifikáty pro operátor Event Gridu měly být vystaveny (podepsány) stejnou certifikační autoritou, aby bylo úspěšné ověření řetězu certifikátů 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 rané fázi testování konceptu můžou být možné použít certifikáty podepsané svým držitelem, ale obecně platí, že by se měly opatřit a používat správné certifikáty PKI podepsané certifikační autoritou.

Instalace pomocí Azure Portal

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

  2. V nabídce vlevo v části Infrastruktura vyberte Cluster Kubernetes.

  3. V seznamu clusterů vyhledejte ten, do kterého chcete event grid nainstalovat, a vyberte ho. Zobrazí se stránka Přehled clusteru.

    Výběr clusteru Kubernetes

  4. Ve skupině Nastavení v nabídce vlevo vyberte Rozšíření.

  5. Vyberte + Přidat. Zobrazí se stránka zobrazující dostupná rozšíření Azure Arc Kubernetes.

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

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

    Vyberte Event Grid v rozšíření Kubernetes.

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

    Vyberte Vytvořit rozšíření Kubernetes.

  8. Na kartě Základy na stránce Instalace služby Event Grid postupujte podle těchto kroků.

    1. V části Project Details 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. Zadejte název do pole Název rozšíření Event Gridu . Tento název by měl být jedinečný mezi dalšími rozšířeními Azure Arc nasazenými ve stejném clusteru připojeném k Azure Arc.

    3. Jako Obor názvů vydané verze můžete 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 pro 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, do kterých se události odesílají, je vystavený jako clusterIP typu služby Kubernetes. Proto IP adresy přiřazené ke všem tématům používají prostor privátních 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, který používá ú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, projděte si dokumentaci k distribuci Kubernetes, kde najdete podporované předdefinované třídy úložiště nebo způsob, jak můžete poskytnout 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. Rychlost příjmu dat v MiB za sekundu měřená jako velikost událostí krát rychlost publikování (události za sekundu) napříč všemi tématy na zprostředkovateli Event Gridu je klíčovým faktorem při přidělování úložiště. Události jsou přechodné povahy a jakmile se doručí, nebudou pro tyto události spotřebovány žádné úložiště. I když je rychlost příjmu dat hlavním faktorem pro použití úložiště, není jediným faktorem. Konfigurace tématu metadat a odběru událostí také spotřebovává prostor úložiště, ale to obvykle vyžaduje menší prostor úložiště 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. V dolní části stránky vyberte Další: Konfigurace .

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

    1. Povolte komunikaci HTTP (ne zabezpečenou). Toto políčko zaškrtněte, pokud chcete používat nezabezpečený kanál, když klienti komunikují se zprostředkovatelem Služby Event Grid.

      Důležité

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

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

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

    3. V dolní části stránky vyberte Další: Monitorování .

  10. Na kartě Monitorování na stránce Instalace služby Event Grid 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ček

    2. V dolní části stránky vyberte Zkontrolovat a vytvořit .

  12. Na kartě Zkontrolovat a vytvořit vyberte Vytvořit.

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

    Důležité

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

    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 nasazením témat Služby Event Grid je potřeba vytvořit vlastní umístění. Pokud chcete vytvořit vlastní umístění, můžete vybrat stránku Kontext 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í Azure Portal. Další informace najdete v dokumentaci k vlastnímu umístění.

  13. Po úspěšném nasazení se na stránce Rozšíření zobrazí položka s názvem, který jste zadali rozšíření Event Gridu. Pokud se zobrazí stavInstalace čeká na vyřízení, počkejte několik minut a pak na panelu nástrojů vyberte Aktualizovat .

    Rozšíření Event Gridu – 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č na 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 Gridu.

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

    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 veřejný certifikát pro zprostředkovatele (první položka konfigurace výše) nazývá client.cer, měl by první řádek konfigurace vypadat jako následující:

    \"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 Gridu.

    Důležité

    Nelze změnit hodnoty pro ServiceAccount a serviceType. Ve verzi Preview je ClusterIPjediným podporovaným typem služby Kubernetes .

    Zadejte storageClassName třídu úložiště, kterou chcete použít pro zprostředkovatele a kterou podporuje vaše distribuce Kubernetes. Pokud například používáte AKS, můžete použít azurefile , který používá ú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, projděte si dokumentaci k distribuci Kubernetes, kde najdete podporované předdefinované třídy úložiště nebo způsob, jak můžete poskytnout vlastní.

    Nastavte reporterType na, prometheus pokud chcete povolit metriky pro témata a odběry událostí pomocí formátu expozice Prometheus.

    Důležité

    Ve verzi Preview je jediným podporovaným mechanismem pro získání metrik použití klienta Prometheus.

    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é do clusteru nainstaluje komponenty Event Gridu.

    Pro parametry cluster-name a resource-groupmusíte 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á přepíše 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 pro vás.

    Důležité

    Ve verzi 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 Grid v clusteru Kubernetes. Pro nasazení v oboru názvů zatím není žádná podpora. Další informace najdete 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 pomocí parametru --config-file můžete předat název souboru JSON, který obsahuje informace o konfiguraci související s Event Gridem. Pokud chcete podporovat protokol HTTP, zahrňte následující nastavení.

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

    Tady je ukázkový soubor 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 Grid úspěšně nasadily.

Vlastní umístění

Důležité

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

Řešení potíží

Problémy s clusterem Azure Arc Connect

Problém: Když přejdete na Azure Arc a v nabídce vlevo vyberete cluster Kubernetes , na zobrazené stránce se nezobrazí cluster Kubernetes, do kterého mám v úmyslu nainstalovat Event Grid.

Řešení: Váš cluster Kubernetes není zaregistrovaný v Azure. Postupujte podle kroků v článku Připojení existujícího clusteru Kubernetes ke službě Azure Arc. Pokud máte během tohoto kroku problém, vytvořte žádost o podporu u týmu 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 – V tomto připojeném clusteru Kubernetes už je nainstalovaná instance služby Event Grid. Rozšíření Event Gridu má obor na úrovni clusteru, což znamená, že do clusteru lze nainstalovat jenom 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 postupujte podle pokynů v rychlém startu Směrování cloudových událostí do webhooků pomocí Azure Event Grid v Kubernetes.