Partager via


Accéder à l’API Kubernetes pour un cluster hub Azure Kubernetes Fleet Manager

Si votre ressource Azure Kubernetes Fleet Manager (Kubernetes Fleet) a été créée avec un cluster hub, vous pouvez l’utiliser pour contrôler de manière centralisée des scénarios tels que la propagation des ressources Kubernetes. Dans cet article, vous allez apprendre à accéder à l’API Kubernetes pour un cluster hub Kubernetes Fleet.

Prérequis

Accédez à l’API Kubernetes

  1. Définissez les variables d'environnement suivantes pour votre ID d'abonnement, votre groupe de ressources et votre ressource Kubernetes Fleet :

    export SUBSCRIPTION_ID=<subscription-id>
    export GROUP=<resource-group-name>
    export FLEET=<fleet-name>
    
  2. Définissez l’abonnement Azure par défaut à utiliser à l’aide de la commande az account set :

    az account set --subscription ${SUBSCRIPTION_ID}
    
  3. Obtenez le fichier kubeconfig du cluster hub Kubernetes Fleet à l’aide de la commande az fleet get-credentials :

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

    Vous devez obtenir un résultat semblable à l’exemple qui suit :

    Merged "hub" as current context in /home/fleet/.kube/config
    
  4. Définissez la variable d’environnement suivante pour la valeur FLEET_ID de la ressource Kubernetes Fleet du cluster hub :

    export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
    
  5. Autorisez votre identité à accéder au cluster hub Kubernetes Fleet à l’aide des commandes suivantes.

    Pour la variable d’environnement ROLE, vous pouvez utiliser l’une des quatre définitions de rôle intégrées suivantes comme valeur :

    • Azure Kubernetes Fleet Manager RBAC Reader
    • Azure Kubernetes Fleet Manager RBAC Writer
    • Azure Kubernetes Fleet Manager RBAC Admin
    • Azure Kubernetes Fleet Manager RBAC Cluster Admin
    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}
    

    Vous devez obtenir un résultat semblable à l’exemple qui suit :

    {
      "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. Vérifiez que vous pouvez accéder au serveur d’API à l’aide de la commande kubectl get memberclusters :

    kubectl get memberclusters
    

    Si la commande réussit, votre sortie doit ressembler à l’exemple suivant :

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