Compartir a través de


Acceso a la API de Kubernetes para un clúster del centro de Azure Kubernetes Fleet Manager

Si el recurso de Azure Kubernetes Fleet Manager (Kubernetes Fleet) se creó con un clúster de centro, puede usarlo para controlar de forma centralizada escenarios como la propagación de recursos de Kubernetes. En este artículo, aprenderá a acceder a la API de Kubernetes para un clúster del centro de Kubernetes Fleet.

Requisitos previos

Acceso a la API de Kubernetes

  1. Establezca las siguientes variables de entorno para el identificador de suscripción, el grupo de recursos y el recurso de Kubernetes Fleet:

    export SUBSCRIPTION_ID=<subscription-id>
    export GROUP=<resource-group-name>
    export FLEET=<fleet-name>
    
  2. Establezca la suscripción de Azure predeterminada mediante el comando az account set:

    az account set --subscription ${SUBSCRIPTION_ID}
    
  3. Obtenga el archivo kubeconfig del clúster del centro de Kubernetes Fleet mediante el comando az fleet get-credentials:

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

    La salida debería similar al siguiente ejemplo:

    Merged "hub" as current context in /home/fleet/.kube/config
    
  4. Establezca la siguiente variable de entorno para el valor FLEET_ID del recurso de Kubernetes Fleet del clúster de centro:

    export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
    
  5. Autorice la identidad para acceder al clúster del centro de Kubernetes Fleet mediante los siguientes comandos.

    Para la variable de entorno ROLE, puede usar una de las cuatro definiciones de roles integradas siguientes como valor:

    • Lector de RBAC de Azure Kubernetes Fleet Manager
    • Escritor de RBAC de Azure Kubernetes Fleet Manager
    • Administrador de RBAC de Azure Kubernetes Fleet Manager
    • Administrador de clústeres de RBAC de Azure Kubernetes Fleet Manager
    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}
    

    La salida debería similar al siguiente ejemplo:

    {
      "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. Compruebe que puede acceder al servidor de API mediante el comando kubectl get memberclusters:

    kubectl get memberclusters
    

    Si el comando se ejecuta correctamente, la salida debe ser similar al ejemplo siguiente:

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