Udostępnij za pośrednictwem


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

W tym artykule opisano kroki instalowania usługi Event Grid w klastrze Kubernetes z obsługą usługi Azure Arc.

W przypadku zwięzłości w tym artykule opisano termin "Event Grid on Kubernetes extension" (Rozszerzenie usługi Event Grid na platformie Kubernetes) lub "Event Grid on Kubernetes" (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 platformy Kubernetes

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

  1. Obsługiwane dystrybucje platformy 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 platformy Kubernetes.
  2. Subskrypcja platformy Azure.
  3. Certyfikaty PKI używane 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.

  • Operatory usługi Event Grid, które 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 przy użyciu 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 PEM poczty rozszerzonej o prywatność.

  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

    Publikowanie klientów może używać certyfikatu urzędu certyfikacji brokera usługi Event Grid do sprawdzania poprawności 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 zezwala tylko na przekazywanie pojedynczego 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 być wystawiane (podpisane) przez ten sam urząd certyfikacji, aby walidacja łańcucha certyfikatów zakończyła się pomyślnie i pomyślnie ustanowić sesję protokołu TLS.

  4. Podczas konfigurowania nazwy pospolitej (CN) dla certyfikatów serwera i klienta upewnij się, że różnią się one od nazwy CN 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 zakupić i używać odpowiednich certyfikatów PKI podpisanych przez urząd certyfikacji.

Instalowanie przy użyciu witryny Azure Portal

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

  2. Wybierz 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 + 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 Podstawy na stronie Instalowanie usługi Event Grid wykonaj następujące kroki.

    1. W sekcji Project Details (Szczegóły projektu) przedstawiono 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 polu Przestrzeń nazw wydania możesz podać nazwę przestrzeni nazw kubernetes, w której zostaną wdrożone składniki usługi Event Grid. Na przykład możesz 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 klaster typu usługi Kubernetes. W związku z tym adresy IP przypisane do wszystkich tematów używają prywatnej przestrzeni IP skonfigurowanej dla klastra.

    5. Podaj nazwę klasy magazynu, której chcesz użyć dla brokera i która jest obsługiwana przez dystrybucję platformy Kubernetes. Jeśli na przykład używasz usługi AKS, możesz użyć usługi , która korzysta z azurefileusł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 kubernetes dotyczącą wstępnie zdefiniowanych klas magazynu obsługiwanych lub sposobu, w jaki możesz udostępnić własne.

    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ń w czasie publikowania (zdarzenia na sekundę) we wszystkich tematach brokera usługi Event Grid jest kluczowym czynnikiem podczas przydzielania magazynu. Zdarzenia są przejściowe 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 przechowują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.

      Instalowanie rozszerzenia usługi Event Grid — strona 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 czynności:

    1. Włącz komunikację HTTP (nie jest bezpieczna). Zaznacz to pole wyboru, jeśli chcesz użyć kanału niezabezpieczonego, 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. Tej opcji należy używać tylko we wczesnych etapach 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ż w momencie wyświetlenia powiadomienia w witrynie Azure Portal informującej o zakończeniu wdrażania. Poczekaj co najmniej 5 minut po wyświetleniu powiadomienia "Wdrożenie zostało ukończone", zanim spróbujesz utworzyć lokalizację niestandardową (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 w dolnej 5 minutach od wyświetlenia powiadomienia "Wdrożenie zostało ukończone". Alternatywnie możesz utworzyć lokalizację niestandardową przy użyciu witryny Azure Portal. Aby uzyskać więcej informacji, zobacz dokumentację Lokalizacja niestandardowa.

  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 ciąg 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.

    Podaj storageClassName klasę magazynu, której chcesz użyć dla brokera i która jest obsługiwana przez dystrybucję platformy Kubernetes. Jeśli na przykład używasz usługi AKS, możesz użyć usługi , która korzysta z azurefile 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 kubernetes dotyczącą wstępnie zdefiniowanych klas magazynu obsługiwanych lub sposobu, w jaki możesz udostępnić własne.

    Ustaw reporterType wartość na , 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 i parametrów cluster-name należy użyć tych samych nazw podanych podczas łączenia klastra z usługą Azure Arc.resource-group

    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 cluster zapoznawczej 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 związane z usługą Event Grid. Aby obsługiwać protokół HTTP, dołącz następujące ustawienie.

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

    Oto przykładowa 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ść installedState powinna mieć Installed miejsce, jeśli składniki rozszerzenia usługi Event Grid zostały pomyślnie wdrożone.

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 witryny Azure Portal.

Rozwiązywanie problemów

Problemy z klastrem programu Azure Arc Connect

Problem: Po przejściu do usługi Azure Arc i wybraniu klastra Kubernetes w menu po lewej stronie wyświetlana 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, prześlij wniosek o pomoc techniczną zespołowi 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 za pomocą usługi Azure Event Grid na platformie Kubernetes.