Compartilhar via


Gerenciador de Cluster: como gerenciar o Gerenciador de Cluster no Operator Nexus

O Gerenciador de Clusters é implantado na assinatura do Azure do operador para gerenciar o ciclo de vida dos Clusters de Infraestrutura do Operador Nexus.

Antes de começar

Garanta que você tenha as seguintes informações:

  • ID da Assinatura do Azure – A ID da assinatura do Azure em que o Gerenciador de Cluster precisa ser criado (deve ser a mesma ID de assinatura do Controlador do Network Fabric).
  • ID do Controlador do Network Fabric – Controlador do Network Fabric e o Gerenciador de Cluster têm uma associação 1:1. Você precisa que a ID do recurso do Controlador do Network Fabric esteja associada ao Gerenciador de Cluster.
  • ID do workspace do Log Analytics – A ID do recurso do workspace do Log Analytics usado para a coleção de logs.
  • Região do Azure – o Gerenciador de Cluster deve ser criado na mesma região do Azure que o Controlador do Network Fabric. Essa região do Azure deve ser usada no campo Location do Gerenciador de Cluster e em todas as instâncias associadas do Operator Nexus.

Limitações

  • Nomenclatura – As regras de nomenclatura podem ser encontradas aqui.

Argumentos globais

Alguns argumentos disponíveis para cada comando da CLI do Azure

  • --depurar – imprime ainda mais informações sobre operações da CLI, usadas para fins de depuração. Se você encontrar um bug, forneça a saída gerada com o sinalizador --debug ao enviar um relatório de bugs.
  • --help -h – imprime informações de referência da CLI sobre comandos e seus argumentos e listas de subgrupos e comandos disponíveis.
  • --only-show-errors – apenas mostrar erros, suprimindo avisos.
  • --output -o – especifica o formato de saída. Os formatos de saída disponíveis são Json, Jsonc (JSON colorido), tsv (Valores Separados por Tabulação), tabela (tabelas ASCII legíveis por humanos) e yaml. Por padrão, a CLI gera Json.
  • --query - usa a linguagem de consulta JMESPath para filtrar a saída retornada dos serviços do Azure.
  • --detalhado – imprime informações sobre recursos criados no Azure durante uma operação e outras informações úteis

Propriedades do Gerenciador de Cluster

Nome da propriedade Descrição
Nome, ID, local, marcas, tipo Nome: Nome amigável do usuário
ID: < ID do recurso >
Local: região do Azure em que o Gerenciador de Clusters é criado. Valores de: az account list -locations.
Marcas: Marcas de recurso
Tipo: Microsoft.NetworkCloud/clusterManagers
managerExtendedLocation A ExtendedLocation associada ao Gerenciador de Cluster
managedResourceGroupConfiguration Informações sobre o Grupo de Recursos Gerenciados
fabricControllerId A referência ao Controlador do Network Fabric que é 1:1 com este Gerenciador de Cluster
analyticsWorkspaceId O workspace do Log Analytics em que os logs relevantes para o cliente serão retransmitidos.
clusterVersions[] A lista de versões de cluster compatíveis com o Gerenciador de Cluster. É usada como uma entrada na propriedade cluster clusterVersion.
provisioningState O status de provisionamento da operação mais recente no Gerenciador de Cluster. Um dos seguintes: bem-sucedido, com falha, cancelado, provisionamento, aceito, atualizando
detailedStatus Os status detalhados que fornecem informações adicionais sobre o status do Gerenciador de Cluster.
detailedStatusMessage A mensagem descritiva sobre o detailedStatus atual.

Identidade do gerenciador de cluster

A partir da versão da API 2024-07-01, um cliente pode atribuir identidade gerenciada a um Gerenciador de Cluster. Há suporte para identidades gerenciadas atribuídas pelo sistema e pelo usuário.

Se um Gerenciador de Cluster for criado com a identidade gerenciada atribuída pelo usuário, um cliente será obrigado a provisionar o acesso a essa identidade para a plataforma Nexus. Especificamente, a permissão Microsoft.ManagedIdentity/userAssignedIdentities/assign/action precisa ser adicionada à identidade atribuída pelo usuário para o Microsoft Entra ID AFOI-NC-MGMT-PME-PROD. É uma limitação conhecida da plataforma que será tratada no futuro.

A atribuição de função pode ser feita no portal do Azure:

  • Abra o portal do Azure e localize a identidade atribuída pelo usuário em questão.
    • Se você espera várias identidades gerenciadas provisionadas, a função pode ser adicionada no nível do grupo de recursos ou da assinatura.
  • Em Access control (IAM), clique em Adicionar nova atribuição de função
  • Escolher função: Managed Identity Operator. Consulte as permissões que a função fornece.
  • Atribua acesso a: Usuário, grupo ou entidade de serviço
  • Selecionar Membro: aplicativo AFOI-NC-MGMT-PME-PROD
  • Examinar e atribuir

Criar um Gerenciador de Cluster

Crie o Gerenciador de Cluster usando a CLI do Azure:

Use o comando az networkcloud clustermanager create para criar um Gerenciador de Cluster. Esse comando cria um novo Gerenciador de Clusters ou atualiza as propriedades do Gerenciador de Cluster se ele existir. Se você tiver várias assinaturas do Azure, selecione a ID de assinatura apropriada usando o comando az account set.

az networkcloud clustermanager create \
    --name "$CLUSTER_MANAGER_NAME" \
    --location "$LOCATION" \
    --analytics-workspace-id "$LAW_NAME" \
    --fabric-controller-id "$NFC_ID" \
    --managed-resource-group-configuration name="$MRG_NAME" location="$MRG_LOCATION" \
    --tags $TAG_KEY1="$TAG_VALUE1" $TAG_KEY2="$TAG_VALUE2"
    --resource-group "$CLUSTER_MANAGER_RG"
    --subscription "$SUB_ID"
  • Argumentos
    • --name -n [Obrigatório] – o nome do Gerenciador de Cluster.
    • --fabric-controller-id [Obrigatório] – A ID do recurso do Controlador do Network Fabric associado ao Gerenciador de Cluster.
    • --resource-group -g [Obrigatório] – Nome do grupo de recursos. Você pode configurar o grupo de recursos padrão usando az configure --defaults group=<name>.
    • --analytics-workspace-id – A ID do recurso do workspace do Log Analytics que é usado para a coleção de logs
    • --location -l - Location. Região do Azure em que o Gerenciador de Clusters é criado. Valores de: az account list -locations. Você pode configurar o local padrão usando az configure --defaults location="$LOCATION".
    • --managed-resource-group-configuration - A configuração do grupo de recursos gerenciado associado ao recurso.
      • Uso: --managed-resource-group-configuration location=XX name=XX
      • local: a região do grupo de recursos gerenciado. Se não for especificado, a região do recurso pai será escolhida.
      • nome: o nome do grupo de recursos gerenciado. Se não for especificado, um nome exclusivo será gerado automaticamente.
    • wait/--no-wait - Aguarde a conclusão do comando ou não aguarde a conclusão da operação de execução prolongada.
    • --tags - Marcas separadas por espaço: key[=value] [key[=value]...]. Use '' para limpar marcações existentes
    • --subscription - nome ou ID da assinatura. Você pode configurar a assinatura padrão usando az account set -s NAME_OR_ID.
    • --mi-system-assigned – Habilita a identidade gerenciada atribuída pelo sistema. Depois de adicionada, a Identidade só pode ser removida por meio da chamada à API no momento.
    • --mi-user-assigned – IDs de recurso separadas por espaço das identidades gerenciadas atribuídas pelo usuário a serem adicionadas. Depois de adicionada, a Identidade só pode ser removida por meio da chamada à API no momento.

Crie o Gerenciador de Cluster usando o editor de modelos do Azure Resource Manager:

Uma maneira alternativa de criar um Gerenciador de Cluster é com o editor de modelo do ARM.

Para criar o cluster dessa forma, você precisará fornecer um arquivo de modelo (clusterManager.jsonc) e um arquivo de parâmetro (clusterManager.parameters.jsonc).

Você pode encontrar exemplos desses dois arquivos aqui:

clusterManager.jsonc , clusterManager.parameters.jsonc

Observação

Para obter a formatação correta, copie o arquivo de código bruto. Os valores dentro do arquivo clusterManager.parameters.jsonc são específicos do cliente e podem não ser uma lista completa. Atualize os campos de valor para seu ambiente específico.

  1. Em um navegador da Web, prossiga para o portal do Azure e entre.
  2. Na barra de pesquisa do portal do Azure, pesquise "Implantar um modelo personalizado" e selecione-o nos serviços disponíveis.
  3. Clique em Criar seu próprio modelo no editor.
  4. Clique em Carregar arquivo. Localize o arquivo de modelo clusterManager.jsonc e carregue-o.
  5. Clique em Save (Salvar).
  6. Clique em Editar parâmetros.
  7. Clique em Carregar arquivo. Localize o arquivo de parâmetros clusterManager.parameters.jsonc e carregue-o.
  8. Clique em Save (Salvar).
  9. Selecione a Assinatura correta.
  10. Pesquise o grupo de recursos se ele já existir ou criar novo.
  11. Verifique se todos os Detalhes da Instância estão corretos.
  12. Clique em Revisar + Criar.

Listar/mostrar Gerenciador de Cluster(s)

Os comandos listar e mostrar são usados para obter uma lista de Gerenciador de Cluster existentes ou as propriedades de um Gerenciador de Cluster específico.

Listar gerenciadores de cluster no grupo de recursos

Este comando lista os Gerenciador de Cluster no grupo de recursos especificado.

az networkcloud clustermanager list --resource-group "$CLUSTER_MANAGER_RG"

Listar Gerenciador de Clusters na assinatura

Este comando lista os Gerenciador de Cluster na assinatura especificada.

az networkcloud clustermanager list  --subscription "$SUB_ID"

Mostrar propriedades do Gerenciador de Cluster

Este comando lista as propriedades do Gerenciador de Cluster especificado.

az networkcloud clustermanager show \
    --name "$CLUSTER_MANAGER_NAME" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"

Listar/mostrar argumentos de comando

  • --name -n - O nome do Gerenciador de Cluster.
  • --IDs - Uma ou mais IDs de recurso (delimitadas por espaço). Deve ser uma ID de recurso completa que contém todas as informações de argumentos de 'ID do recurso'.
  • --resource-group -g – Nome do grupo de recursos. Você pode configurar o grupo padrão usando az configure --defaults group=<name>.
  • --subscription - nome ou ID da assinatura. Você pode configurar a assinatura padrão usando az account set -s NAME_OR_ID.

Atualizar o Gerenciador de Clusters

Esse comando é usado para corrigir propriedades do Gerenciador de Cluster fornecido ou atualizar as marcas atribuídas ao Gerenciador de Cluster. As propriedades e as atualizações de marca podem ser feitas de forma independente.

az networkcloud clustermanager update \
    --name "$CLUSTER_MANAGER_NAME" \
    --tags $TAG_KEY1="$TAG_VALUE1" $TAG_KEY2="$TAG_VALUE2" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"
  • Argumentos
    • --tags - marcas separadas por TSpace: key[=value] [key[=value] ...]. Use '' para limpar marcações existentes.
    • --name -n - O nome do Gerenciador de Cluster.
    • --IDs - Uma ou mais IDs de recurso (delimitadas por espaço). Deve ser uma ID de recurso completa que contém todas as informações de argumentos de 'ID do recurso'.
    • --resource-group -g – Nome do grupo de recursos. Você pode configurar o grupo padrão usando az configure --defaults group=<name>.
    • --subscription - nome ou ID da assinatura. Você pode configurar a assinatura padrão usando az account set -s NAME_OR_ID.
    • --mi-system-assigned – Habilita a identidade gerenciada atribuída pelo sistema. Depois de adicionada, a Identidade só pode ser removida por meio da chamada à API no momento.
    • --mi-user-assigned – IDs de recurso separadas por espaço das identidades gerenciadas atribuídas pelo usuário a serem adicionadas. Depois de adicionada, a Identidade só pode ser removida por meio da chamada à API no momento.

Atualizar identidades do Gerenciador de Cluster por meio de APIs

As identidades gerenciadas do Gerenciador de Cluster podem ser atribuídas por meio da CLI. A não atribuição das identidades pode ser feita por meio de chamadas à API. Observe que <APIVersion> é a versão 2024-07-01 ou mais recente da API.

  • Para remover todas as identidades gerenciadas, execute:

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body "{\"identity\":{\"type\":\"None\"}}"
    
  • Se as identidades gerenciadas atribuídas pelo usuário e pelo sistema tiverem sido adicionadas, a atribuição do usuário poderá ser removida atualizando o type para SystemAssigned:

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    O exemplo do corpo da solicitação (uai-body.json):

    {
      "identity": {
          "type": "SystemAssigned"
      }
    }
    
  • Se as identidades gerenciadas atribuídas pelo usuário e pelo sistema tiverem sido adicionadas, a atribuição do Sistema poderá ser removida atualizando o type para UserAssigned:

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    O exemplo do corpo da solicitação (uai-body.json):

    {
      "identity": {
          "type": "UserAssigned",
      	"userAssignedIdentities": {
      		"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": {}
      	}
      }
    }
    
  • Se várias identidades gerenciadas atribuídas pelo usuário tiverem sido adicionadas, uma delas poderá ser removida executando:

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    O exemplo do corpo da solicitação (uai-body.json):

    {
      "identity": {
          "type": "UserAssigned",
      	"userAssignedIdentities": {
      		"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": null
      	}
      }
    }
    

Excluir o Gerenciador de Cluster

Esse comando é usado para excluir o Gerenciador de Cluster fornecido.

Aviso

Um Gerenciador de Clusters que tem um Controlador de Malha de Rede associado existente ou clusters que fazem referência a esse Gerenciador de Clusters pode não ser excluído.

az networkcloud clustermanager delete \
    --name "$CLUSTER_MANAGER_NAME" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"
  • Argumentos
    • --no-wait - Não espere a conclusão da operação de longa execução.
    • -yes -y - Não solicite confirmação.
    • --name -n - O nome do Gerenciador de Cluster.
    • --IDs - Uma ou mais IDs de recurso (delimitadas por espaço). Deve ser uma ID de recurso completa que contém todas as informações de argumentos de 'ID do recurso'.
    • --resource-group -g – Nome do grupo de recursos. Você pode configurar o grupo padrão usando az configure --defaults group=<name>.
    • --subscription - nome ou ID da assinatura. Você pode configurar a assinatura padrão usando az account set -s NAME_OR_ID.

Próximas etapas

Depois de criar com êxito o Controlador do Network Fabric e o Gerenciador de Cluster, a próxima etapa é criar um Network Fabric.