Sdílet prostřednictvím


Vytváření a správa vlastních umístění v Kubernetes s podporou Azure Arc

Funkce vlastních umístění poskytuje způsob konfigurace clusterů Kubernetes s podporou Azure Arc jako cílových umístění pro nasazení instancí nabídek Azure. Mezi příklady nabídek Azure, které je možné nasadit nad vlastní umístění, patří databáze, jako je SQL Managed Instance povolená serverem Azure Arc a serverem PostgreSQL s podporou Azure Arc nebo instance aplikací, jako jsou Container Apps, Logic Apps, Event Grid, Logic Apps a API Management.

Vlastní umístění má mapování 1:1 na obor názvů v clusteru Kubernetes s podporou Služby Azure Arc. Vlastní umístění prostředků Azure v kombinaci s řízením přístupu na základě role v Azure (Azure RBAC) se dá použít k udělení podrobných oprávnění vývojářům aplikací nebo správcům databází, což jim umožňuje nasadit prostředky, jako jsou databáze nebo instance aplikací v clusterech Kubernetes s podporou Arc, v prostředí s více tenanty.

V tomto článku se dozvíte, jak povolit vlastní umístění v clusteru Kubernetes s podporou Arc a jak vytvořit vlastní umístění.

Požadavky

  • Nainstalujte nebo upgradujte Azure CLI na nejnovější verzi.

  • Nainstalujte nejnovější verze následujících rozšíření Azure CLI:

    • connectedk8s

    • k8s-extension

    • customlocation

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

      Pokud jste již nainstalovali connectedk8s, k8s-extensiona customlocation rozšíření, aktualizujte na nejnovější verzi pomocí následujícího příkazu:

      az extension update --name connectedk8s
      az extension update --name k8s-extension
      az extension update --name customlocation
      
  • Ověřte dokončenou registraci poskytovatele pro Microsoft.ExtendedLocation.

    1. Zadejte následující příkazy:

      az provider register --namespace Microsoft.ExtendedLocation
      
    2. Monitorujte proces registrace. Registrace může trvat až 10 minut.

      az provider show -n Microsoft.ExtendedLocation -o table
      

      Po registraci bude mít stav RegistrationState hodnotu Registered.

  • Ověřte, že máte existující cluster Kubernetes s podporou Azure Arc, a upgradujte agenty na nejnovější verzi. Ověřte, že počítač, na kterém budete spouštět příkazy popsané v tomto článku, obsahuje kubeconfig soubor odkazující na tento cluster.

Povolení vlastních umístění ve vašem clusteru

Důležité

Funkce vlastního umístění závisí na funkci připojení clusteru . Aby vlastní umístění fungovala, musí být v clusteru povoleny obě tyto funkce.

K povolení vlastního umístění je potřeba ID objektu vlastního umístění (OID). Pokud má váš uživatelský účet požadovaná oprávnění, identifikátor OID se automaticky načte během povolování funkce. Pokud nemáte platný uživatelský účet, použije se ručně předaný identifikátor OID, ale identifikátor OID se nedá ověřit. Pokud je OID neplatný, může vlastní umístění být nesprávně povoleno.

Před vytvořením vlastních umístění je nutné, aby byla povolena funkce vlastních umístění, protože povolení funkce poskytuje požadovaná oprávnění k vytvoření oboru názvů vlastních umístění v clusteru Kubernetes.

Pokud chcete funkci vlastních umístění povolit jako uživatele Microsoft Entra, postupujte následovně:

  1. Přihlaste se k Azure CLI jako uživatel Microsoft Entra a spusťte následující příkaz:
az connectedk8s enable-features -n <clusterName> -g <resourceGroupName> --features cluster-connect custom-locations

Chcete-li povolit funkci vlastních umístění se služebním principalem, postupujte následovně:

Identifikátor vlastního umístění načtěte ručně pomocí následujícího postupu:

  1. Přihlaste se k Azure CLI jako uživatel Microsoft Entra.

  2. Spuštěním následujícího příkazu získejte vlastní umístění oid (ID objektu), kde --id odkazuje na službu aplikace Custom Location a je předdefinovaná a nastavená na bc313c14-388c-4e7d-a58e-70017303ee3b:

    Důležité Zkopírujte a spusťte příkaz přesně tak, jak je znázorněno níže. Nenahrazovat hodnotu předanou --id parametru jinou hodnotou.

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. Přihlaste se k Azure CLI pomocí služebního principálu. Spusťte následující příkaz, kterým povolíte funkci vlastních umístění v clusteru, a použijte hodnotu oid (ID objektu) z předchozího kroku pro parametr --custom-locations-oid.

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

Vytvořte vlastní umístění

  1. Nasaďte rozšíření clusteru služeb Azure pro instanci služby Azure, kterou chcete v clusteru nainstalovat:

  2. Získejte identifikátor Azure Resource Manageru clusteru Kubernetes s podporou Azure Arc, který se v pozdějších krocích označuje jako connectedClusterId:

    az connectedk8s show -n <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  3. Získejte identifikátor Azure Resource Manageru pro rozšíření clusteru, které jste nasadili do clusteru Kubernetes s podporou Azure Arc. V dalších krocích se na něj odkazuje jako na extensionId.

    az k8s-extension show --name <extensionInstanceName> --cluster-type connectedClusters -c <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  4. Vytvořte vlastní umístění odkazem na cluster Kubernetes s podporou Azure Arc a rozšíření:

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

      Název parametru Popis
      --name, --n Název vlastního umístění
      --resource-group, --g Skupina prostředků uživatelsky definovaného umístění
      --namespace Obor názvů v clusteru připojený k vlastnímu umístění, které se vytváří.
      --host-resource-id Identifikátor Azure Resource Manageru clusteru Kubernetes s podporou Služby Azure Arc (připojený cluster).
      --cluster-extension-ids Identifikátor Azure Resource Manageru instance rozšíření clusteru nainstalované v připojeném clusteru Pro více rozšíření zadejte seznam ID rozšíření clusteru oddělených mezerami.
    • Volitelné parametry:

      Název parametru Popis
      --location, --l Umístění prostředku Azure Resource Manageru přizpůsobeného umístění v Azure. Pokud není zadaný, použije se umístění připojeného clusteru.
      --tags Seznam značek oddělených mezerami ve formátu key[=value]. K vymazání existujících značek použijte ''.
      --kubeconfig Správce kubeconfig clusteru
  5. Ověřte, zda se vlastní umístění úspěšně povolilo spuštěním následujícího příkazu a kontrolou, že ProvisioningState je Succeeded.

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

Zobrazení podrobností o vlastním umístění

Pokud chcete zobrazit podrobnosti vlastního umístění, použijte následující příkaz:

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

Seznam vlastních umístění

Pokud chcete zobrazit seznam všech vlastních umístění ve skupině prostředků, použijte následující příkaz:

az customlocation list -g <resourceGroupName> 

Aktualizace vlastního umístění

update Pomocí příkazu můžete přidat nové hodnoty pro --tags vlastní umístění nebo přidružit nové --cluster-extension-ids k vlastnímu umístění a zachovat stávající hodnoty pro značky a přidružená rozšíření clusteru.

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

Opravit vlastní umístění

patch Pomocí příkazu nahraďte existující hodnoty pro --cluster-extension-ids nebo --tags. Předchozí hodnoty se nezachovají.

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

Smazat vlastní umístění

Pokud chcete odstranit vlastní umístění, použijte následující příkaz:

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

Řešení problému

Chyba získání přihlašovacích údajů v Azure CLI verze 2.70.0

Může dojít k chybě, která obsahuje: TypeError: get_login_credentials() got an unexpected keyword argument 'resource'. Azure CLI v2.70.0 vydala zásadní změnu, která tuto chybu aktivuje. Oprava je k dispozici v Az CLI rozšíření customlocation verze 0.1.4 pro kompatibilitu s Azure CLI verze 2.70.0 a vyšší. Pokud používáte rozšíření Azure CLI pro vlastní umístění starší než verze 0.1.4, musíte Azure CLI downgradovat na verzi 2.69.0. Pokud jste použili instalační program Azure CLI, můžete odinstalovat aktuální verzi a nainstalovat Azure CLI v2.69.0 z webu Azure CLI installation page. Pokud jste použili instalační program pip, můžete spuštěním následujícího příkazu přejít na nižší verzi: pip install azure-cli==2.69.0.

Neznámá chyba proxy serveru

Pokud vytváření vlastního umístění selže s chybou Unknown proxy error occurred, upravte zásady sítě tak, aby umožňovaly interní komunikaci mezi pody v rámci oboru názvů azure-arc. Nezapomeňte také přidat azure-arc obor názvů jako součást seznamu výjimek pro ignorování proxy serveru pro vaše nakonfigurované zásady.

Upozornění principála služby

Pokud se pokusíte aktivovat vlastní umístění při přihlášení k Azure CLI pomocí služebního principála, může se zobrazit následující upozornění:

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

K tomuto upozornění dochází, protože hlavní služba nemá potřebná oprávnění k získání oid (ID objektu) vlastního umístění, které používá služba Azure Arc. Podle výše uvedených pokynů povolte funkci uživatelsky definovaného umístění pomocí hlavní služby.

Poskytovatel prostředků nemá požadovaná oprávnění

Pokud se pokusíte vytvořit vlastní umístění před povolením funkce vlastního umístění v clusteru Kubernetes, může se zobrazit následující chybová zpráva:

Deployment failed. Correlation ID: ... "Microsoft.ExtendedLocation" resource provider does not have the required permissions to create a namespace on the cluster. Refer to https://aka.ms/ArcK8sCustomLocationsDocsEnableFeature to provide the required permissions to the resource provider.

Nejprve podle výše uvedených pokynů povolte funkci vlastního nastavení umístění v Kubernetes clusteru. Po povolení funkce můžete podle pokynů vytvořit vlastní umístění.

Další kroky