Instalowanie rozszerzenia usługi Event Grid w klastrze Kubernetes z obsługą usługi Azure Arc

Ten artykuł przeprowadzi Cię przez kroki instalowania usługi Event Grid w klastrze Kubernetes z włączoną usługą Azure Arc .

Aby uzyskać zwięzłość, w tym artykule opisano termin "Event Grid on Kubernetes extension" (Rozszerzenie usługi Event Grid na platformie Kubernetes) lub "Event Grid" (Usługa Event Grid na platformie Kubernetes) lub "Event Grid".

Ważne

Usługa Event Grid na platformie Kubernetes z usługą Azure Arc jest obecnie dostępna w publicznej wersji zapoznawczej. Ta wersja zapoznawcza nie jest objęta umową dotyczącą poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

Obsługiwane dystrybucje kubernetes

Poniżej przedstawiono obsługiwane dystrybucje kubernetes, w których można wdrożyć i uruchomić usługę Event Grid.

  1. Obsługiwane dystrybucje kubernetes w usłudze Azure AKS.
  2. RedHat OpenShift Container Platform.

Rozszerzenie usługi Event Grid

Operacja, która instaluje wystąpienie usługi Event Grid w klastrze Kubernetes, to utworzenie rozszerzenia klastra usługi Azure Arc, które wdraża zarówno brokera usługi Event Grid , jak i operatora usługi Event Grid. Aby uzyskać więcej informacji na temat funkcji brokera i operatora, zobacz Event Grid on Kubernetes components (Usługa Event Grid w składnikach platformy Kubernetes). Funkcja rozszerzenia klastra usługi Azure Arc zapewnia zarządzanie cyklem życia przy użyciu operacji płaszczyzny sterowania usługi Azure Resource Manager (ARM) w usłudze Event Grid wdrożonej w klastrach Kubernetes z obsługą usługi Azure Arc.

Uwaga

Wersja zapoznawcza usługi obsługuje tylko jedno wystąpienie rozszerzenia usługi Event Grid w klastrze Kubernetes, ponieważ rozszerzenie usługi Event Grid jest obecnie zdefiniowane jako rozszerzenie o zakresie klastra. Nie ma jeszcze obsługi wdrożeń o zakresie przestrzeni nazw dla usługi Event Grid, które umożliwiłyby wdrożenie wielu wystąpień w klastrze. Aby uzyskać więcej informacji, zobacz Zakres rozszerzenia.

Wymagania wstępne

Przed kontynuowaniem instalacji usługi Event Grid upewnij się, że zostały spełnione następujące wymagania wstępne.

  1. Klaster działający w jednej z obsługiwanych dystrybucji Kubernetes.
  2. Subskrypcja platformy Azure.
  3. Certyfikaty PKI do użycia do nawiązywania połączenia HTTPS z brokerem usługi Event Grid.
  4. Połącz klaster z usługą Azure Arc.

Uzyskiwanie pomocy technicznej

Jeśli wystąpi problem, zobacz sekcję Rozwiązywanie problemów , aby uzyskać pomoc dotyczącą typowych warunków. Jeśli nadal masz problemy, utwórz żądanie pomoc techniczna platformy Azure.

Wymagania dotyczące certyfikatu PKI

Broker usługi Event Grid (serwer) obsługuje dwa rodzaje klientów. Uwierzytelnianie serwera odbywa się przy użyciu certyfikatów. Uwierzytelnianie klienta odbywa się przy użyciu certyfikatów lub kluczy SAS na podstawie typu klienta.

  • Operatorzy usługi Event Grid, którzy wysyłają żądania płaszczyzny sterowania do brokera usługi Event Grid, są uwierzytelniane przy użyciu certyfikatów.
  • Wydawcy usługi Event Grid, którzy publikują zdarzenia w temacie usługi Event Grid, są uwierzytelniani za pomocą kluczy sygnatury dostępu współdzielonego tematu.

Aby ustanowić bezpieczną komunikację HTTPS z brokerem usługi Event Grid i operatorem usługi Event Grid, używamy certyfikatów PKI podczas instalacji rozszerzenia usługi Event Grid. Poniżej przedstawiono ogólne wymagania dotyczące tych certyfikatów PKI:

  1. Certyfikaty i klucze muszą być certyfikatami X.509 i zaszyfrowanym standardem PEM poczty rozszerzonej prywatności .

  2. Aby skonfigurować certyfikat brokera usługi Event Grid (serwera) podczas instalacji, należy podać następujące elementy:

    1. Certyfikat urzędu certyfikacji
    2. Certyfikat publiczny
    3. Klucz prywatny
  3. Aby skonfigurować certyfikat operatora usługi Event Grid (klienta), należy podać następujące elementy:

    1. Certyfikat urzędu certyfikacji
    2. Certyfikat publiczny
    3. Klucz prywatny

    Klienci publikowania mogą używać certyfikatu urzędu certyfikacji brokera usługi Event Grid do weryfikowania serwera podczas publikowania zdarzeń w temacie.

    Ważne

    Chociaż domena skojarzona z klientem może mieć więcej niż jeden certyfikat publiczny wystawiony przez różne urzędy certyfikacji, usługa Event Grid na platformie Kubernetes umożliwia przekazywanie tylko jednego certyfikatu urzędu certyfikacji dla klientów podczas instalowania usługi Event Grid. W związku z tym certyfikaty operatora usługi Event Grid powinny zostać wystawione (podpisane) przez ten sam urząd certyfikacji, aby walidacja łańcucha certyfikatów zakończyła się pomyślnie, a sesja PROTOKOŁU TLS została pomyślnie ustanowiona.

  4. Podczas konfigurowania nazwy pospolitej (CN) dla certyfikatów serwera i klienta upewnij się, że różnią się one od nazwy pospolitej podanej dla certyfikatu urzędu certyfikacji.

    Ważne

    W przypadku wczesnych etapów weryfikacji koncepcji certyfikaty z podpisem własnym mogą być opcją, ale ogólnie rzecz biorąc, należy pozyskać i używać odpowiednich certyfikatów PKI podpisanych przez urząd certyfikacji.

Instalowanie przy użyciu Azure Portal

  1. Na Azure Portal wyszukaj (pole u góry) dla usługi Azure Arc

  2. Wybierz pozycję Klaster Kubernetes w menu po lewej stronie w sekcji Infrastruktura

  3. Na liście klastrów znajdź ten, do którego chcesz zainstalować usługę Event Grid, i wybierz go. Zostanie wyświetlona strona Przegląd klastra.

    Wybieranie klastra Kubernetes

  4. Wybierz pozycję Rozszerzenia w grupie Ustawienia w menu po lewej stronie.

  5. Wybierz pozycję + Dodaj. Zostanie wyświetlona strona przedstawiająca dostępne rozszerzenia kubernetes usługi Azure Arc.

    Rozszerzenia klastra — przycisk Dodaj

  6. Na stronie Nowy zasób wybierz pozycję Event Grid w rozszerzeniu Kubernetes.

    Wybieranie usługi Event Grid w rozszerzeniu Kubernetes

  7. Na stronie Event Grid w rozszerzeniu Kubernetes wybierz pozycję Utwórz.

    Wybierz pozycję Utwórz rozszerzenie Kubernetes

  8. Na karcie Podstawowe na stronie Instalowanie usługi Event Grid wykonaj następujące kroki.

    1. Sekcja Project Details zawiera wartości subskrypcji i grupy zasobów tylko do odczytu, ponieważ rozszerzenia usługi Azure Arc są wdrażane w ramach tej samej subskrypcji platformy Azure i grupy zasobów połączonego klastra, na którym są zainstalowane.

    2. Podaj nazwę w polu Nazwa rozszerzenia usługi Event Grid . Ta nazwa powinna być unikatowa wśród innych rozszerzeń usługi Azure Arc wdrożonych w tym samym klastrze połączonym z usługą Azure Arc.

    3. W obszarze Przestrzeń nazw wydania możesz podać nazwę przestrzeni nazw Kubernetes, w której zostaną wdrożone składniki usługi Event Grid. Możesz na przykład mieć jedną przestrzeń nazw dla wszystkich usług z obsługą usługi Azure Arc wdrożonych w klastrze. Wartość domyślna to eventgrid-system. Jeśli podana przestrzeń nazw nie istnieje, zostanie utworzona dla Ciebie.

    4. W sekcji Szczegóły brokera usługi Event Grid wyświetlany jest typ usługi. Broker usługi Event Grid, który jest składnikiem, który uwidacznia punkty końcowe tematu, do których są wysyłane zdarzenia, jest uwidoczniony jako typ usługi Kubernetes ClusterIP. W związku z tym adresy IP przypisane do wszystkich tematów używają prywatnej przestrzeni ADRESÓW IP skonfigurowanej dla klastra.

    5. Podaj nazwę klasy magazynu , której chcesz użyć dla brokera i która jest obsługiwana przez dystrybucję Kubernetes. Jeśli na przykład używasz usługi AKS, możesz użyć usługi azurefile, która korzysta z usługi Azure Standard Storage. Aby uzyskać więcej informacji na temat wstępnie zdefiniowanych klas magazynu obsługiwanych przez usługę AKS, zobacz Klasy magazynu w usłudze AKS. Jeśli używasz innych dystrybucji Platformy Kubernetes, zapoznaj się z dokumentacją dystrybucji platformy Kubernetes dotyczącą wstępnie zdefiniowanych klas magazynu obsługiwanych lub sposobu udostępniania własnych.

    6. Rozmiar magazynu. Wartość domyślna to 1 GiB. Podczas określania rozmiaru magazynu należy wziąć pod uwagę szybkość pozyskiwania. Szybkość pozyskiwania w usłudze MiB/sekunda mierzona jako rozmiar zdarzeń, gdy szybkość publikowania (zdarzenia na sekundę) we wszystkich tematach brokera usługi Event Grid jest kluczowym czynnikiem podczas przydzielania magazynu. Zdarzenia mają charakter przejściowy i po ich dostarczeniu nie ma użycia magazynu dla tych zdarzeń. Chociaż szybkość pozyskiwania jest głównym czynnikiem do użycia magazynu, nie jest to jedyny czynnik. Metadane zawierające temat i konfiguracja subskrypcji zdarzeń zużywają również miejsce do magazynowania, ale zwykle wymaga mniejszej ilości miejsca do magazynowania niż zdarzenia pozyskane i dostarczane przez usługę Event Grid.

    7. Limit pamięci. Wartość domyślna to 1 GiB.

    8. Żądanie pamięci. Wartość domyślna to 200 MiB. To pole nie jest edytowalne.

      Strona Instalowanie rozszerzenia usługi Event Grid — podstawy

    9. Wybierz pozycję Dalej: Konfiguracja w dolnej części strony.

  9. Na karcie Konfiguracja na stronie Instalowanie usługi Event Grid wykonaj następujące kroki:

    1. Włącz komunikację HTTP (niezabezpieczony). Zaznacz to pole wyboru, jeśli chcesz użyć niezabezpieczonego kanału, gdy klienci komunikują się z brokerem usługi Event Grid.

      Ważne

      Włączenie tej opcji sprawia, że komunikacja z brokerem usługi Event Grid jest używana jako transport. W związku z tym każdy klient publikowania i operator usługi Event Grid nie będą bezpiecznie komunikować się z brokerem usługi Event Grid. Ta opcja powinna być używana tylko podczas wczesnych etapów programowania.

    2. Jeśli komunikacja HTTP nie została włączona, wybierz wszystkie pozyskane pliki certyfikatów PKI i spełniają wymagania dotyczące certyfikatu PKI.

      Instalowanie rozszerzenia usługi Event Grid — strona konfiguracji

    3. Wybierz pozycję Dalej: Monitorowanie w dolnej części strony.

  10. Na karcie Monitorowanie na stronie Instalowanie usługi Event Grid wykonaj następujące czynności:

    1. Wybierz pozycję Włącz metryki (opcjonalnie). Jeśli wybierzesz tę opcję, usługa Event Grid na platformie Kubernetes uwidacznia metryki dla tematów i subskrypcji zdarzeń przy użyciu formatu wystawy Prometheus.

      Instalowanie rozszerzenia usługi Event Grid — strona monitorowania

    2. Wybierz pozycję Dalej: Tagi , aby przejść do strony Tagi .

  11. Na stronie Tagi wykonaj następujące czynności:

    1. Zdefiniuj tagi, jeśli to konieczne.

      Instalowanie rozszerzenia usługi Event Grid — strona Tagi

    2. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.

  12. Na karcie Przeglądanie i tworzenie wybierz pozycję Utwórz.

    Instalowanie rozszerzenia usługi Event Grid — przeglądanie i tworzenie strony

    Ważne

    Instalacja usługi Event Grid jest operacją asynchroniczną, która może działać dłużej w klastrze Kubernetes niż czas, w którym zostanie wyświetlone powiadomienie w witrynie Azure Portal informujące o zakończeniu wdrażania. Poczekaj co najmniej 5 minut po wyświetleniu powiadomienia o zakończeniu wdrażania przed podjęciem próby utworzenia lokalizacji niestandardowej (następny krok). Jeśli masz dostęp do klastra Kubernetes, w sesji powłoki bash możesz wykonać następujące polecenie, aby sprawdzić, czy zasobniki brokera usługi Event Grid i operatora usługi Event Grid są w stanie Uruchomiony, co oznacza, że instalacja została ukończona:

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

    Oto przykładowe dane wyjściowe:

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

    Ważne

    Przed podjęciem próby wdrożenia tematów usługi Event Grid należy utworzyć lokalizację niestandardową. Aby utworzyć lokalizację niestandardową, możesz wybrać stronę Kontekst u dołu 5 minut po wyświetlonym powiadomieniu "Wdrożenie zostało ukończone". Alternatywnie można utworzyć lokalizację niestandardową przy użyciu Azure Portal. Aby uzyskać więcej informacji, zobacz dokumentację lokalizacji niestandardowej.

  13. Po pomyślnym wdrożeniu będzie można zobaczyć wpis na stronie Rozszerzenia o nazwie podanej w rozszerzeniu usługi Event Grid. Jeśli zostanie wyświetlony komunikat Oczekiwanie na stan instalacji, poczekaj kilka minut, a następnie wybierz pozycję Odśwież na pasku narzędzi.

    Rozszerzenie usługi Event Grid — zainstalowane

Instalowanie przy użyciu interfejsu wiersza polecenia platformy Azure

  1. Uruchom sesję powłoki. Możesz uruchomić sesję na komputerze lub otworzyć przeglądarkę na https://shell.azure.com.

  2. Utwórz plik protected-settings-extension.jsonkonfiguracji . Ten plik jest przekazywany jako parametr podczas tworzenia rozszerzenia usługi Event Grid.

    W poniższym poleceniu i w każdym wierszu konfiguracji zastąp filename odpowiednio nazwą zawierającą certyfikat publiczny, certyfikat urzędu certyfikacji lub klucz operatora (klienta) lub brokera (serwera). Wszystkie dostarczone certyfikaty powinny być zakodowane w formacie base64 bez zawijania wierszy. W związku z base64 --wrap=0 tym użycie polecenia .

    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 
    

    Jeśli na przykład certyfikat publiczny brokera (pierwszy element konfiguracji powyżej) jest nazywany client.cer, pierwszy wiersz konfiguracji powinien wyglądać następująco:

    \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 client.cer --wrap=0)\",    
    
  3. Utwórz plik settings-extension.jsonkonfiguracji . Ten plik jest przekazywany jako parametr podczas tworzenia rozszerzenia usługi Event Grid.

    Ważne

    Nie można zmienić wartości dla ServiceAccount i serviceType. W wersji zapoznawczej jedynym obsługiwanym typem usługi Kubernetes jest ClusterIP.

    Aby storageClassName podać klasę magazynu, której chcesz użyć dla brokera i która jest obsługiwana przez dystrybucję Kubernetes. Jeśli na przykład używasz usługi AKS, możesz użyć usługi azurefile , która korzysta z usługi Azure Standard Storage. Aby uzyskać więcej informacji na temat wstępnie zdefiniowanych klas magazynu obsługiwanych przez usługę AKS, zobacz Klasy magazynu w usłudze AKS. Jeśli używasz innych dystrybucji Kubernetes, zapoznaj się z dokumentacją dystrybucji kubernetes dla wstępnie zdefiniowanych klas magazynu obsługiwanych lub sposobu udostępniania własnych.

    Ustaw reporterType wartość , aby prometheus włączyć metryki dla tematów i subskrypcji zdarzeń przy użyciu formatu wystawy Prometheus.

    Ważne

    W wersji zapoznawczej używanie klienta Prometheus jest jedynym obsługiwanym mechanizmem pobierania metryk.

    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. Utwórz rozszerzenie Kubernetes, które instaluje składniki usługi Event Grid w klastrze.

    W przypadku parametrów cluster-name i resource-groupprogramu należy użyć tych samych nazw podanych podczas łączenia klastra z usługą Azure Arc.

    release-namespace to przestrzeń nazw, w której zostaną wdrożone składniki usługi Event Grid. Wartość domyślna to eventgrid-system. Możesz podać wartość, aby zastąpić wartość domyślną. Na przykład możesz mieć jedną przestrzeń nazw dla wszystkich usług z obsługą usługi Azure Arc wdrożonych w klastrze. Jeśli podana przestrzeń nazw nie istnieje, zostanie utworzona dla Ciebie.

    Ważne

    W wersji zapoznawczej cluster jest jedynym zakresem obsługiwanym podczas tworzenia lub aktualizowania rozszerzenia usługi Event Grid. Oznacza to, że usługa obsługuje tylko jedno wystąpienie rozszerzenia usługi Event Grid w klastrze Kubernetes. Nie ma jeszcze obsługi wdrożeń o zakresie przestrzeni nazw. Aby uzyskać więcej informacji, zobacz Zakres rozszerzenia.

    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    
    

    Aby uzyskać więcej informacji na temat polecenia interfejsu wiersza polecenia, zobacz az k8s-extension create. Zwróć uwagę, że można użyć parametru --config-file , aby przekazać nazwę pliku json zawierającego informacje o konfiguracji powiązane z usługą Event Grid. Aby obsługiwać protokół HTTP, dołącz następujące ustawienie.

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

    Oto przykładowy plik settings-extension.json z powyższym ustawieniem.

    {
        "Microsoft.CustomLocation.ServiceAccount": "eventgrid-operator",
        "eventgridbroker.service.serviceType": "ClusterIP",
        "eventgridbroker.service.supportedProtocols[0]": "http",
        "eventgridbroker.dataStorage.storageClassName": "default",
        "eventgridbroker.diagnostics.metrics.reporterType": "prometheus"
    }    
    
  5. Sprawdź, czy rozszerzenie usługi Event Grid zostało pomyślnie zainstalowane.

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

    Właściwość powinna być Installed następującainstalledState, jeśli składniki rozszerzenia usługi Event Grid zostały wdrożone pomyślnie.

Lokalizacja niestandardowa

Ważne

Przed podjęciem próby wdrożenia tematów usługi Event Grid należy utworzyć lokalizację niestandardową. Lokalizację niestandardową można utworzyć przy użyciu Azure Portal.

Rozwiązywanie problemów

Problemy z klastrem azure Arc connect

Problem: Po przejściu do usługi Azure Arc i wybraniu klastra Kubernetes w menu po lewej stronie strona nie pokazuje klastra Kubernetes, w którym zamierzam zainstalować usługę Event Grid.

Rozwiązanie: Klaster Kubernetes nie jest zarejestrowany na platformie Azure. Wykonaj kroki opisane w artykule Łączenie istniejącego klastra Kubernetes z usługą Azure Arc. Jeśli masz problem podczas tego kroku, zgłoś wniosek o pomoc techniczną z zespołem Kubernetes z obsługą usługi Azure Arc.

Problemy z rozszerzeniem usługi Event Grid

Problem: Podczas próby zainstalowania "rozszerzenia usługi Event Grid" zostanie wyświetlony następujący komunikat: "Nieprawidłowa operacja — wystąpienie usługi Event Grid zostało już zainstalowane w tym połączonym klastrze Kubernetes. Rozszerzenie usługi Event Grid ma zakres na poziomie klastra, co oznacza, że w klastrze można zainstalować tylko jedno wystąpienie".

Wyjaśnienie: Masz już zainstalowaną usługę Event Grid. Wersja zapoznawcza usługi Event Grid obsługuje tylko jedno wystąpienie rozszerzenia usługi Event Grid wdrożone w klastrze.

Następne kroki

Utwórz lokalizację niestandardową, a następnie postępuj zgodnie z instrukcjami w przewodniku Szybki start Kierowanie zdarzeń w chmurze do elementów webhook z Azure Event Grid na platformie Kubernetes.