Udostępnij za pośrednictwem


Uzyskiwanie dostępu do interfejsu API kubernetes dla klastra koncentratora usługi Azure Kubernetes Fleet Manager

Jeśli zasób usługi Azure Kubernetes Fleet Manager (Kubernetes Fleet) został utworzony za pomocą klastra koncentratora, możesz użyć go do centralnego sterowania scenariuszami, takimi jak propagacja zasobów Kubernetes. Z tego artykułu dowiesz się, jak uzyskać dostęp do interfejsu API Kubernetes dla klastra koncentratora Kubernetes Fleet.

Wymagania wstępne

Uzyskiwanie dostępu do interfejsu API platformy Kubernetes

  1. Ustaw następujące zmienne środowiskowe dla zasobu subscription ID, resource group i Kubernetes Fleet:

    export SUBSCRIPTION_ID=<subscription-id>
    export GROUP=<resource-group-name>
    export FLEET=<fleet-name>
    
  2. Ustaw domyślną subskrypcję platformy Azure przy użyciu az account set polecenia :

    az account set --subscription ${SUBSCRIPTION_ID}
    
  3. Pobierz plik kubeconfig klastra koncentratora Kubernetes Fleet przy użyciu az fleet get-credentials polecenia :

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

    Dane wyjściowe powinny wyglądać mniej więcej tak jak w tym przykładzie:

    Merged "hub" as current context in /home/fleet/.kube/config
    
  4. Ustaw następującą zmienną środowiskową dla FLEET_ID wartości zasobu Kubernetes Fleet klastra koncentratora:

    export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
    
  5. Autoryzuj swoją tożsamość, aby uzyskać dostęp do klastra usługi Kubernetes Fleet Hub przy użyciu następujących poleceń.

    Dla zmiennej środowiskowej ROLE można użyć jednej z następujących czterech wbudowanych definicji ról jako wartości:

    • Czytelnik kontroli dostępu opartej na rolach w usłudze Azure Kubernetes Fleet Manager
    • Moduł zapisywania kontroli dostępu opartej na rolach w usłudze Azure Kubernetes Fleet Manager
    • Administrator kontroli dostępu opartej na rolach w usłudze Azure Kubernetes Fleet Manager
    • Administrator klastra RBAC usługi 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}
    

    Dane wyjściowe powinny wyglądać mniej więcej tak jak w tym przykładzie:

    {
      "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. Sprawdź, czy możesz uzyskać dostęp do serwera interfejsu kubectl get memberclusters API przy użyciu polecenia :

    kubectl get memberclusters
    

    Jeśli polecenie zakończy się pomyślnie, dane wyjściowe powinny wyglądać podobnie do poniższego przykładu:

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