Delen via


Aangepaste locaties maken en beheren in Kubernetes met Azure Arc

De functie aangepaste locaties biedt een manier om uw Kubernetes-clusters met Azure Arc te configureren als doellocaties voor het implementeren van exemplaren van Azure-aanbiedingen. Voorbeelden van Azure-aanbiedingen die kunnen worden geïmplementeerd op aangepaste locaties, zijn databases, zoals SQL Managed Instance ingeschakeld door Azure Arc en PostgreSQL-server met Azure Arc of toepassingsexemplaren, zoals App Services, Functions, Event Grid, Logic Apps en API Management.

Een aangepaste locatie heeft een een-op-een-toewijzing aan een naamruimte binnen het Kubernetes-cluster met Azure Arc. De Azure-resource voor aangepaste locaties in combinatie met op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) kan worden gebruikt om gedetailleerde machtigingen te verlenen aan toepassingsontwikkelaars of databasebeheerders, zodat ze resources zoals databases of toepassingsexemplaren kunnen implementeren op Kubernetes-clusters met Arc in een omgeving met meerdere tenants.

In dit artikel leert u hoe u aangepaste locaties inschakelt op een Kubernetes-cluster met Arc en hoe u een aangepaste locatie maakt.

Vereisten

  • Azure CLI installeren of upgraden naar de nieuwste versie.

  • Installeer de nieuwste versies van de volgende Azure CLI-extensies:

    • connectedk8s

    • k8s-extension

    • customlocation

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

      Als u de connectedk8s, k8s-extensionen customlocation extensies al hebt geïnstalleerd, werkt u bij naar de nieuwste versie met behulp van de volgende opdracht:

      az extension update --name connectedk8s
      az extension update --name k8s-extension
      az extension update --name customlocation
      
  • Controleer de voltooide providerregistratie voor Microsoft.ExtendedLocation.

    1. Voer de volgende opdrachten in:

      az provider register --namespace Microsoft.ExtendedLocation
      
    2. Controleer het registratieproces. Registratie kan tot 10 minuten duren.

      az provider show -n Microsoft.ExtendedLocation -o table
      

      Zodra de status is geregistreerd, heeft de RegistrationState status de Registered waarde.

  • Controleer of u een bestaand Met Azure Arc verbonden Kubernetes-cluster hebt en werk uw agents bij naar de nieuwste versie. Controleer of de computer waarop u de opdrachten uitvoert die in dit artikel worden beschreven, een kubeconfig bestand bevat dat naar dit cluster verwijst.

Aangepaste gebieden inschakelen op uw cluster

Tip

De functie Aangepast gebied is afhankelijk van de functie Clusterverbinding. Beide functies moeten zijn ingeschakeld in het cluster om aangepaste gebieden te laten functioneren. Volg de onderstaande stappen om de functie voor aangepaste locaties in te schakelen:

Als u bent aangemeld bij Azure CLI als Microsoft Entra-gebruiker, gebruikt u de volgende opdracht:

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

Als u de bovenstaande opdracht uitvoert terwijl u bent aangemeld bij Azure CLI met behulp van een service-principal, ziet u mogelijk de volgende waarschuwing:

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

Deze waarschuwing treedt op omdat de service-principal niet beschikt over de benodigde machtigingen voor het ophalen van de oid (object-id) van de aangepaste locatie die wordt gebruikt door de Azure Arc-service. Volg deze stappen om deze fout te voorkomen:

  1. Meld u aan bij Azure CLI met uw gebruikersaccount.

  2. Voer de volgende opdracht uit om de oid (object-id) van de aangepaste locatie op te halen, waar --id vooraf is gedefinieerd en ingesteld bc313c14-388c-4e7d-a58e-70017303ee3bop:

    Belangrijk Kopieer en voer de opdracht precies uit zoals hieronder wordt weergegeven. Vervang de waarde die aan de --id parameter wordt doorgegeven niet door een andere waarde.

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. Meld u aan bij Azure CLI met behulp van de service-principal. Voer de volgende opdracht uit om de functie voor aangepaste locaties in het cluster in te schakelen met behulp van de oid waarde (object-id) uit de vorige stap voor de --custom-locations-oid parameter:

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

Aangepaste locatie maken

  1. Implementeer de Azure-serviceclusterextensie van het Azure-service-exemplaar dat u wilt installeren op uw cluster:

  2. Haal de Azure Resource Manager-id op van het Kubernetes-cluster met Azure Arc, waarnaar in latere stappen wordt verwezen als connectedClusterId:

    az connectedk8s show -n <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  3. Haal de Azure Resource Manager-id op van de clusterextensie die u hebt geïmplementeerd in het Kubernetes-cluster met Azure Arc, waarnaar in latere stappen wordt verwezen als extensionId:

    az k8s-extension show --name <extensionInstanceName> --cluster-type connectedClusters -c <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  4. Maak de aangepaste locatie door te verwijzen naar het Kubernetes-cluster met Azure Arc en de extensie:

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

      Parameternaam Beschrijving
      --name, --n Naam van de aangepaste locatie.
      --resource-group, --g Resourcegroep van de aangepaste locatie.
      --namespace Naamruimte in het cluster dat is gebonden aan de aangepaste locatie die wordt gemaakt.
      --host-resource-id Azure Resource Manager-id van het Kubernetes-cluster met Azure Arc (verbonden cluster).
      --cluster-extension-ids Azure Resource Manager-id van een clusterextensie-exemplaar dat is geïnstalleerd op het verbonden cluster. Voor meerdere extensies geeft u een door spaties gescheiden lijst met clusterextensie-id's op
    • Optionele parameters:

      Parameternaam Beschrijving
      --location, --l Locatie van de aangepaste locatie van Azure Resource Manager-resource in Azure. Als dit niet is opgegeven, wordt de locatie van het verbonden cluster gebruikt.
      --tags Door spaties gescheiden lijst met tags in de indeling key[=value]. Gebruik '' om bestaande tags te wissen.
      --kubeconfig Beheerder kubeconfig van het cluster.

Details van een aangepaste locatie weergeven

Gebruik de volgende opdracht om de details van een aangepaste locatie weer te geven:

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

Aangepaste locaties weergeven

Gebruik de volgende opdracht om alle aangepaste locaties in een resourcegroep weer te geven:

az customlocation list -g <resourceGroupName> 

Een aangepaste locatie bijwerken

Gebruik de update opdracht om nieuwe waarden toe te voegen voor --tags of nieuwe --cluster-extension-ids te koppelen aan de aangepaste locatie, terwijl bestaande waarden voor tags en gekoppelde clusterextensies behouden blijven.

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

Een aangepaste locatie patchen

Gebruik de patch opdracht om bestaande waarden voor --cluster-extension-ids of --tags. Eerdere waarden worden niet bewaard.

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

Een aangepaste locatie verwijderen

Gebruik de volgende opdracht om een aangepaste locatie te verwijderen:

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

Probleemoplossing

Als het maken van aangepaste locaties mislukt met de fout Unknown proxy error occurred, wijzigt u uw netwerkbeleid zodat interne communicatie tussen pods binnen de azure-arc naamruimte mogelijk is. Zorg ervoor dat u de azure-arc naamruimte ook toevoegt als onderdeel van de uitsluitingslijst zonder proxy voor uw geconfigureerde beleid.

Volgende stappen