Condividi tramite


Accedere all'API Kubernetes per un cluster hub di Azure Kubernetes Fleet Manager

Se la risorsa Di Azure Kubernetes Fleet Manager (Kubernetes Fleet) è stata creata con un cluster hub, è possibile usarla per controllare in modo centralizzato scenari come la propagazione delle risorse Kubernetes. Questo articolo illustra come accedere all'API Kubernetes per un cluster hub Kubernetes Fleet.

Prerequisiti

Accedere all'API Kubernetes

  1. Impostare le variabili di ambiente seguenti per l'ID sottoscrizione, il gruppo di risorse e la risorsa Kubernetes Fleet:

    export SUBSCRIPTION_ID=<subscription-id>
    export GROUP=<resource-group-name>
    export FLEET=<fleet-name>
    
  2. Impostare la sottoscrizione di Azure predefinita usando il az account set comando :

    az account set --subscription ${SUBSCRIPTION_ID}
    
  3. Ottenere il file kubeconfig del cluster hub Kubernetes Fleet usando il az fleet get-credentials comando :

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

    L'output dovrebbe essere simile all'esempio seguente:

    Merged "hub" as current context in /home/fleet/.kube/config
    
  4. Impostare la variabile di ambiente seguente per il FLEET_ID valore della risorsa Kubernetes Fleet del cluster hub:

    export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
    
  5. Autorizzare l'identità ad accedere al cluster hub Kubernetes Fleet usando i comandi seguenti.

    Per la ROLE variabile di ambiente, è possibile usare una delle quattro definizioni di ruolo predefinite seguenti come valore:

    • Reader di Controllo degli accessi in base al ruolo di Gestione flotta Kubernetes di Azure
    • Writer di Controllo degli accessi in base al ruolo di Gestione flotta Kubernetes di Azure
    • Admin di Controllo degli accessi in base al ruolo di Gestione flotta Kubernetes di Azure
    • Admin del cluster di Controllo degli accessi in base al ruolo di Gestione flotta Kubernetes di 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}
    

    L'output dovrebbe essere simile all'esempio seguente:

    {
      "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. Verificare di poter accedere al server API usando il kubectl get memberclusters comando :

    kubectl get memberclusters
    

    Se il comando ha esito positivo, l'output dovrebbe essere simile all'esempio seguente:

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