Tworzenie lokalizacji niestandardowych i zarządzanie nimi w środowisku Kubernetes z obsługą usługi Azure Arc

Funkcja lokalizacji niestandardowych umożliwia skonfigurowanie klastrów Kubernetes z obsługą usługi Azure Arc jako lokalizacji docelowych na potrzeby wdrażania wystąpień ofert platformy Azure. Przykłady ofert platformy Azure, które można wdrożyć w oparciu o lokalizacje niestandardowe, obejmują bazy danych, takie jak wystąpienie zarządzane SQL włączone przez usługę Azure Arc i serwer PostgreSQL z obsługą usługi Azure Arc, lub wystąpienia aplikacji, takie jak App Services, Functions, Event Grid, Logic Apps i API Management.

Lokalizacja niestandardowa ma mapowanie jeden do jednego w przestrzeni nazw w klastrze Kubernetes z obsługą usługi Azure Arc. Zasób niestandardowej lokalizacji platformy Azure połączony z kontrolą dostępu opartą na rolach platformy Azure (Azure RBAC) może służyć do udzielania szczegółowych uprawnień deweloperom aplikacji lub administratorom bazy danych, umożliwiając im wdrażanie zasobów, takich jak bazy danych lub wystąpienia aplikacji w klastrach Kubernetes z obsługą usługi Arc w środowisku wielodostępnym.

Z tego artykułu dowiesz się, jak włączyć lokalizacje niestandardowe w klastrze Kubernetes z obsługą usługi Arc oraz jak utworzyć lokalizację niestandardową.

Wymagania wstępne

  • Zainstaluj lub uaktualnij interfejs wiersza polecenia platformy Azure do najnowszej wersji.

  • Zainstaluj najnowsze wersje następujących rozszerzeń interfejsu wiersza polecenia platformy Azure:

    • connectedk8s

    • k8s-extension

    • customlocation

      az extension add --name connectedk8s
      az extension add --name k8s-extension
      az extension add --name customlocation
      

      Jeśli zainstalowano connectedk8sjuż rozszerzenia , k8s-extensioni customlocation , zaktualizuj do najnowszej wersji przy użyciu następującego polecenia:

      az extension update --name connectedk8s
      az extension update --name k8s-extension
      az extension update --name customlocation
      
  • Sprawdź ukończoną rejestrację dostawcy dla elementu Microsoft.ExtendedLocation.

    1. Wprowadź następujące polecenia:

      az provider register --namespace Microsoft.ExtendedLocation
      
    2. Monitoruj proces rejestracji. Rejestracja może potrwać do 10 minut.

      az provider show -n Microsoft.ExtendedLocation -o table
      

      Po zarejestrowaniu RegistrationStateRegistered stan będzie miał wartość .

  • Sprawdź, czy masz istniejący połączony klaster Kubernetes z włączoną usługą Azure Arc, i uaktualnij agentów do najnowszej wersji. Upewnij się, że maszyna, na której będą uruchamiane polecenia opisane w tym artykule, zawiera kubeconfig plik wskazujący ten klaster.

Włączanie lokalizacji niestandardowych w klastrze

Napiwek

Funkcja lokalizacji niestandardowych jest zależna od funkcji łączenia klastra. Obie funkcje muszą być włączone w klastrze, aby lokalizacje niestandardowe działały.

Jeśli logujesz się do interfejsu wiersza polecenia platformy Azure jako użytkownik firmy Microsoft Entra, użyj następującego polecenia:

az connectedk8s enable-features -n <clusterName> -g <resourceGroupName> --features cluster-connect custom-locations

Jeśli uruchomisz powyższe polecenie po zalogowaniu się do interfejsu wiersza polecenia platformy Azure przy użyciu jednostki usługi, może zostać wyświetlone następujące ostrzeżenie:

Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.

Dzieje się tak, ponieważ jednostka usługi nie ma uprawnień do uzyskiwania informacji o aplikacji używanej przez usługę Azure Arc. Aby uniknąć tego błędu, wykonaj następujące kroki:

  1. Zaloguj się do interfejsu wiersza polecenia platformy Azure przy użyciu swojego konta użytkownika. Pobierz aplikację objectIdid Microsoft Entra używaną przez usługę Azure Arc za pomocą następującego polecenia:

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  2. Zaloguj się do interfejsu wiersza polecenia platformy Azure przy użyciu jednostki usługi. <objectId> Użyj wartości lub id z poprzedniego kroku, aby włączyć lokalizacje niestandardowe w klastrze:

    az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId/id> --features cluster-connect custom-locations
    

Tworzenie lokalizacji niestandardowej

  1. Wdróż rozszerzenie klastra usługi platformy Azure dla wystąpienia usługi platformy Azure, które chcesz zainstalować w klastrze:

  2. Pobierz identyfikator usługi Azure Resource Manager dotyczący klastra platformy Kubernetes z obsługą usługi Azure Arc, do którego odwołuje się wartość connectedClusterId w kolejnych krokach:

    az connectedk8s show -n <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  3. Pobierz identyfikator usługi Azure Resource Manager rozszerzenia klastra wdrożonego w klastrze Kubernetes z obsługą usługi Azure Arc, do którego odwołuje się w kolejnych krokach jako extensionId:

    az k8s-extension show --name <extensionInstanceName> --cluster-type connectedClusters -c <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  4. Utwórz lokalizację niestandardową, odwołując się do klastra Kubernetes z włączoną usługą Azure Arc i rozszerzenia:

    az customlocation create -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionId> 
    
    • Wymagane parametry:

      Nazwa parametru opis
      --name, --n Nazwa lokalizacji niestandardowej.
      --resource-group, --g Grupa zasobów lokalizacji niestandardowej.
      --namespace Przestrzeń nazw w klastrze powiązana z tworzoną lokalizacją niestandardową.
      --host-resource-id Identyfikator usługi Azure Resource Manager klastra Kubernetes z włączoną usługą Azure Arc (połączony klaster).
      --cluster-extension-ids Identyfikator usługi Azure Resource Manager wystąpienia rozszerzenia klastra zainstalowanego w połączonym klastrze. W przypadku wielu rozszerzeń podaj rozdzielaną spacjami listę identyfikatorów rozszerzeń klastra
    • Parametry opcjonalne:

      Nazwa parametru opis
      --location, --l Niestandardowa lokalizacja zasobu usługi Azure Resource Manager na platformie Azure. Jeśli nie zostanie określony, zostanie użyta lokalizacja połączonego klastra.
      --tags Rozdzielona spacjami lista tagów w formacie key[=value]. Użyj "", aby wyczyścić istniejące tagi.
      --kubeconfig kubeconfig Administracja klastra.

Pokaż szczegóły lokalizacji niestandardowej

Aby wyświetlić szczegóły lokalizacji niestandardowej, użyj następującego polecenia:

az customlocation show -n <customLocationName> -g <resourceGroupName> 

Wyświetlanie listy lokalizacji niestandardowych

Aby wyświetlić listę wszystkich lokalizacji niestandardowych w grupie zasobów, użyj następującego polecenia:

az customlocation list -g <resourceGroupName> 

Aktualizowanie lokalizacji niestandardowej

update Użyj polecenia , aby dodać nowe wartości lub --tags skojarzyć nowe --cluster-extension-ids z lokalizacją niestandardową, zachowując istniejące wartości dla tagów i skojarzonych rozszerzeń klastra.

az customlocation update -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds> 

Stosowanie poprawek lokalizacji niestandardowej

Za pomocą polecenia zastąp patch istniejące wartości parametru --cluster-extension-ids lub --tags. Poprzednie wartości nie są zachowywane.

az customlocation patch -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds> 

Usuwanie lokalizacji niestandardowej

Aby usunąć lokalizację niestandardową, użyj następującego polecenia:

az customlocation delete -n <customLocationName> -g <resourceGroupName> 

Rozwiązywanie problemów

Jeśli tworzenie lokalizacji niestandardowej zakończy się niepowodzeniem z powodu błędu Unknown proxy error occurred, zmodyfikuj zasady sieciowe, aby zezwolić na komunikację wewnętrzną zasobnika w azure-arc przestrzeni nazw. Pamiętaj również, aby dodać azure-arc przestrzeń nazw jako część listy wykluczeń bez serwera proxy dla skonfigurowanych zasad.

Następne kroki