Compartilhar via


Início Rápido: Criar um Gerenciador de Frota do Kubernetes do Azure e ingressar em clusters de membros usando a CLI do Azure

Aplica-se a: ✔️ Gerenciador de Frota ✔️ Gerenciador de Frota com cluster hub

Comece com o Gerenciador de Frota de Kubernetes do Azure usando a CLI do Azure para criar um Gerenciador de Frota e ingressar clusters Kubernetes com suporte como membros.

Antes de começar

Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.

  • Leia a visão geral conceitual do Fleet Manager, que fornece uma explicação de frotas e clusters de membros referenciados neste documento.

  • Leia a visão geral conceitual dos tipos de frota, que fornece uma comparação de diferentes opções de configuração de frota.

  • Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.

  • Uma identidade (usuário ou entidade de serviço) que pode ser usada para fazer login na CLI do Azure. Essa identidade precisa das seguintes permissões para recursos da Frota e, se aplicável, recursos de cluster de membros:

  • Permissões de frota:

    • Microsoft.ContainerService/fleets/read
    • Microsoft.ContainerService/fleets/write
    • Microsoft.ContainerService/fleets/members/read
    • Microsoft.ContainerService/fleets/members/write
    • Microsoft.ContainerService/fleetMemberships/read
    • Microsoft.ContainerService/fleetMemberships/write
  • Se ingressar nos clusters de membros do AKS:

    • Microsoft.ContainerService/managedClusters/read
    • Microsoft.ContainerService/managedClusters/write
    • Microsoft.ContainerService/managedClusters/listClusterUserCredential/action
  • Se ingressar nos clusters de membro do Kubernetes habilitados para Arc:

    • Microsoft.Kubernetes/connectedClusters/read,
    • Microsoft.KubernetesConfiguration/extensions/read,
    • Microsoft.KubernetesConfiguration/extensions/write,
    • Microsoft.KubernetesConfiguration/extensions/delete,
  • Instale a CLI do Azure versão 2.70.0 ou posterior. Para instalar ou atualizar, confira Instalar a CLI do Azure.

  • Você também precisa da extensão da CLI do fleet Azure versão 1.6.2 ou posterior, que pode ser instalada executando o seguinte comando:

    az extension add --name fleet
    

    Execute o seguinte comando para atualizar para a versão mais recente da extensão lançada:

    az extension update --name fleet
    
  • Defina as seguintes variáveis de ambiente:

    export SUBSCRIPTION_ID=<subscription_id>
    export GROUP=<your_resource_group_name>
    export FLEET=<your_fleet_name>
    export LOCATION=<azure-region-name>
    
  • Instale kubectl usando o az aks install-cli comando.

    az aks install-cli
    
  • Clusters do Kubernetes que devem ingressar como clusters membros do Fleet Manager devem usar versões com suporte de suas respectivas plataformas: consulte a política de suporte à versão do cluster do AKS e a validação de Kubernetes habilitada pelo Azure Arc.

Criar um grupo de recursos

Um grupo de recursos do Azure é um grupo lógico no qual os recursos do Azure são implantados e gerenciados. Ao criar um grupo de recursos, você é solicitado a especificar um local. Esse local é o local de armazenamento dos metadados do seu grupo de recursos e onde os seus recursos são executados no Azure se não especificar outro local durante a criação de recursos.

Defina a assinatura do Azure e crie um grupo de recursos usando o comando az group create.

az account set -s ${SUBSCRIPTION_ID}
az group create --name ${GROUP} --location ${LOCATION}

O exemplo de saída a seguir é semelhante à criação bem-sucedida do grupo de recursos:

{
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo",
  "location": "<LOCATION>",
  "managedBy": null,
  "name": "fleet-demo",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

Criar um Gerenciador de Frota

Você pode criar um Gerenciador de Frota a qualquer momento, selecionando a opção de adicionar Clusters Kubernetes com suporte como membros posteriormente. Quando criado por meio da CLI do Azure, por padrão, o Fleet Manager habilita o agrupamento de cluster de membros e a orquestração de atualização. Se o Fleet Manager for criado com um cluster de hub, o posicionamento inteligente do objeto Kubernetes e o balanceamento de carga entre vários clusters de membros serão possíveis. Para obter mais informações, veja a visão geral conceitual dos tipos de frota, que fornece uma comparação de diferentes configurações de frota.

Importante

Você pode alterar de um Gerenciador de Frota sem um cluster de hub para um com um cluster de hub, mas não o inverso. Para os Gerenciadores de Frota com um cluster de hub, uma vez que o acesso privado ou público for selecionado, ele não poderá mais ser alterado.

Se você quiser usar o Gerenciador de Frota apenas para a orquestração de atualização de imagens do Kubernetes ou do nó, você poderá criar um recurso de frota sem o cluster de hub usando o comando az fleet create.

az fleet create \
    --resource-group ${GROUP} \
    --name ${FLEET} \
    --location ${LOCATION} \
    --enable-managed-identity

Seu resultado deve ser semelhante ao seguinte exemplo de saída:

{
  "etag": "...",
  "hubProfile": null,
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo/providers/Microsoft.ContainerService/fleets/fleet-demo",
  "identity": {
    "principalId": <system-identity-id>,
    "tenantId": <entra-tenant-id>,
    "type": "SystemAssigned",
    "userAssignedIdentities": null
  },
  "location": "<LOCATION>",
  "name": "fleet-demo",
  "provisioningState": "Succeeded",
  "resourceGroup": "fleet-demo",
  "systemData": {
    "createdAt": "2023-11-03T17:15:19.610149+00:00",
    "createdBy": "<user>",
    "createdByType": "User",
    "lastModifiedAt": "2023-11-03T17:15:19.610149+00:00",
    "lastModifiedBy": "<user>",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.ContainerService/fleets"
}

Ingressar em clusters membros

Atualmente, a Frota oferece suporte à junção de clusters do AKS já existentes ou clusters Kubernetes habilitados para Arc (versão prévia) como clusters membros.

  1. Configure as seguintes variáveis de ambiente para clusters membros:

    export MEMBER_NAME_1=flt-member-cluster-1
    
    # For an AKS cluster
    export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/managedClusters/${MEMBER_NAME_1}
    
    # For an Arc-enabled cluster
    export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.Kubernetes/connectedClusters/${MEMBER_NAME_1}
    
  2. Junte os clusters existentes ao Fleet Manager usando o az fleet member create comando.

    az fleet member create \
        --resource-group ${GROUP} \
        --fleet-name ${FLEET} \
        --name ${MEMBER_NAME_1} \
        --member-cluster-id ${MEMBER_CLUSTER_ID_1}
    

    Seu resultado deve ser semelhante ao seguinte exemplo de saída:

    {
      "clusterResourceId": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-x",
      "etag": "...",
      "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/fleets/<FLEET>/members/aks-member-x",
      "name": "aks-member-1",
      "provisioningState": "Succeeded",
      "resourceGroup": "<GROUP>",
      "systemData": {
        "createdAt": "2022-10-04T19:04:56.455813+00:00",
        "createdBy": "<user>",
        "createdByType": "User",
        "lastModifiedAt": "2022-10-04T19:04:56.455813+00:00",
        "lastModifiedBy": "<user>",
        "lastModifiedByType": "User"
      },
      "type": "Microsoft.ContainerService/fleets/members"
    }
    
  3. Verifique se os clusters membros ingressaram com êxito no Fleet Manager usando o az fleet member list comando.

    az fleet member list \
        --resource-group ${GROUP} \
        --fleet-name ${FLEET} \
        -o table
    

    Se for bem-sucedido, sua saída deverá ser semelhante ao seguinte exemplo de saída:

    ClusterResourceId                                                                                                                                Name          ProvisioningState    ResourceGroup
    -----------------------------------------------------------------------------------------------------------------------------------------------  ------------  -------------------  ---------------
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-1  aks-member-1  Succeeded            <GROUP>
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-2  aks-member-2  Succeeded            <GROUP>
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-3  aks-member-3  Succeeded            <GROUP>
    

Próximas etapas