Mulai cepat: Mengakses API Kubernetes dari sumber daya Armada

Jika sumber daya Azure Kubernetes Fleet Manager Anda dibuat dengan kluster hub diaktifkan, maka dapat digunakan untuk mengontrol skenario secara terpusat seperti penyebaran sumber daya Kubernetes. Dalam artikel ini, Anda mempelajari cara mengakses API Kubernetes dari kluster hub yang dikelola oleh sumber daya Armada.

Prasyarat

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Mengakses API Kubernetes dari sumber daya Armada

  1. Atur variabel lingkungan berikut untuk ID langganan, grup sumber daya, dan sumber daya Armada Anda:

    export SUBSCRIPTION_ID=<subscription-id>
    export GROUP=<resource-group-name>
    export FLEET=<fleet-name>
    
  2. Atur langganan Azure default untuk digunakan menggunakan az account set perintah .

    az account set --subscription ${SUBSCRIPTION_ID}
    
  3. Dapatkan file kubeconfig dari sumber daya Armada kluster hub menggunakan az fleet get-credentials perintah .

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

    Output Anda akan terlihat mirip dengan contoh output berikut:

    Merged "hub" as current context in /home/fleet/.kube/config
    
  4. Atur variabel lingkungan berikut untuk id sumber daya Armada kluster hub:

    export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
    
  5. Otorisasi identitas Anda ke server API Kubernetes sumber daya Armada kluster hub menggunakan perintah berikut:

    ROLE Untuk variabel lingkungan, Anda dapat menggunakan salah satu dari empat definisi peran bawaan berikut sebagai nilai:

    • Pembaca RBAC Manajer Armada Azure Kubernetes
    • Penulis RBAC Manajer Armada Azure Kubernetes
    • Admin RBAC Manajer Armada Azure Kubernetes
    • Admin Kluster RBAC Manajer Armada Azure Kubernetes
    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}
    

    Output Anda akan terlihat mirip dengan contoh output berikut:

    {
      "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. Verifikasi bahwa Anda dapat mengakses server API menggunakan kubectl get memberclusters perintah .

    kubectl get memberclusters
    

    Jika berhasil, output Anda akan terlihat mirip dengan contoh output berikut:

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

Langkah berikutnya