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
- Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
- Necesita un recurso de Kubernetes Fleet con un clúster de centro y clústeres miembro. Si no tiene ninguno, consulte Creación de un recurso de Azure Kubernetes Fleet Manager y unión a clústeres de miembros mediante la CLI de Azure.
- La identidad (usuario o entidad de servicio) que usa debe tener permisos de acción Microsoft.ContainerService/fleets/listCredentials/ en el recurso de Kubernetes Fleet.
Acceso a la API de Kubernetes
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>
Establezca la suscripción de Azure predeterminada mediante el comando
az account set
:az account set --subscription ${SUBSCRIPTION_ID}
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
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}
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" }
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
Contenido relacionado
Azure Kubernetes Service