Compartilhar via


Acessar a API do Kubernetes do cluster de hub de frota

Se o seu recurso Gerenciador de Frota de Kubernetes do Azure foi criado com o cluster do hub ativado, então pode ser usado para controlar centralmente cenários como a propagação de recursos Kubernetes. Nesse artigo, você aprende como acessar a API Kubernetes do cluster de hub gerenciado pelo recurso Frota.

Pré-requisitos

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Acessar a API do Kubernetes do cluster de hub de frota

  1. Defina as seguintes variáveis de ambiente para a ID de assinatura, o grupo de recursos e o recurso Frota:

    export SUBSCRIPTION_ID=<subscription-id>
    export GROUP=<resource-group-name>
    export FLEET=<fleet-name>
    
  2. Defina a assinatura padrão do Azure a ser usada usando o comando az account set.

    az account set --subscription ${SUBSCRIPTION_ID}
    
  3. Obtenha o arquivo kubeconfig do recurso Frota do cluster de hub usando o comando az fleet get-credentials.

    az fleet get-credentials --resource-group ${GROUP} --name ${FLEET}
    

    Seu resultado deve ser semelhante ao seguinte exemplo de saída:

    Merged "hub" as current context in /home/fleet/.kube/config
    
  4. Defina a seguinte variável de ambiente para o id do recurso Frota do cluster de hub:

    export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
    
  5. Autorize sua identidade para o servidor API Kubernetes do cluster de hub Frota usando os seguintes comandos:

    Para a variável de ambiente ROLE, você pode usar uma das quatro definições de função integradas a seguir como valor:

    • Leitor RBAC do Gerenciador de Frota de Kubernetes do Azure
    • Gravador RBAC do Gerenciador de Frota de Kubernetes do Azure
    • Administrador RBAC do Gerenciador de Frota de Kubernetes do Azure
    • Administrador do cluster de RBAC do Gerenciador de Frota de Kubernetes do Azure
    export IDENTITY=$(az ad signed-in-user show --query "id" --output tsv)
    export ROLE="Azure Kubernetes Fleet Manager RBAC Cluster Admin"
    az role assignment create --role "${ROLE}" --assignee ${IDENTITY} --scope ${FLEET_ID}
    

    Seu resultado deve ser semelhante ao seguinte exemplo de saída:

    {
      "canDelegate": null,
      "condition": null,
      "conditionVersion": null,
      "description": null,
      "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/fleets/<FLEET>/providers/Microsoft.Authorization/roleAssignments/<assignment>",
      "name": "<name>",
      "principalId": "<id>",
      "principalType": "User",
      "resourceGroup": "<GROUP>",
      "roleDefinitionId": "/subscriptions/<SUBSCRIPTION_ID>/providers/Microsoft.Authorization/roleDefinitions/18ab4d3d-a1bf-4477-8ad9-8359bc988f69",
      "scope": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/fleets/<FLEET>",
      "type": "Microsoft.Authorization/roleAssignments"
    }
    
  6. Verifique se você pode acessar o servidor API usando o comando kubectl get memberclusters.

    kubectl get memberclusters
    

    Se for bem-sucedido, sua saída deverá ser semelhante ao seguinte exemplo de saída:

    NAME           JOINED   AGE
    aks-member-1   True     2m
    aks-member-2   True     2m
    aks-member-3   True     2m
    

Próximas etapas