Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
- Implantar um cluster Kubernetes do Azure Nexus usando a CLI do Azure.
Antes de começar
Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Utilize o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Introdução ao Azure Cloud Shell.
Se você preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se você estiver executando no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login . Para concluir o processo de autenticação, siga as etapas exibidas em seu terminal. Para obter outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar e gerenciar extensões com a CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute az upgrade.
Instale a versão mais recente das extensões necessárias da CLI do Azure.
Este artigo requer a versão 2.61.0 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.
Se você tiver várias assinaturas do Azure, selecione a ID de assinatura apropriada na qual os recursos devem ser cobrados usando o
az accountcomando.Consulte a tabela de SKU da VM na seção de referência para obter a lista de SKUs de VM com suporte.
Consulte as versões do Kubernetes com suporte para a lista de versões do Kubernetes com suporte.
Crie um grupo de recursos usando o comando
az group create. 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. Essa é a localização na qual os metadados do grupo de recursos são armazenados e na qual os recursos são executados no Azure, caso você não especifique outra região durante a criação de recursos. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup no local eastus .az group create --name myResourceGroup --location eastusO exemplo de saída a seguir se assemelha à criação bem-sucedida do grupo de recursos:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null }Para implantar um arquivo Bicep ou um modelo do ARM, você precisa ter acesso de gravação nos recursos que está implantando e acesso a todas as operações no tipo de recurso Microsoft.Resources/deployments. Por exemplo, para implantar um cluster, você precisa de permissões Microsoft.NetworkCloud/kubernetesclusters/write e Microsoft.Resources/deployments/*. Para ver uma lista de funções e permissões, consulte Funções interna do Azure.
Você precisa da
custom locationID de recurso do cluster Azure Operator Nexus.Você precisa criar várias redes de acordo com seus requisitos específicos de carga de trabalho e é essencial ter os endereços IP apropriados disponíveis para suas cargas de trabalho. Para garantir uma implementação tranquila, é aconselhável consultar as equipes de suporte relevantes para obter assistência.
Este guia de início rápido pressupõe uma compreensão básica dos conceitos do Kubernetes. Para obter mais informações, confira Principais conceitos do Kubernetes para o AKS (Serviço de Kubernetes do Azure).
Criar um cluster Kubernetes Azure Nexus
O exemplo a seguir cria um cluster chamado myNexusK8sCluster no grupo de recursos myResourceGroup no local eastus .
Antes de executar os comandos, você precisa definir várias variáveis para definir a configuração do cluster. Aqui estão as variáveis que você precisa definir, juntamente com alguns valores padrão que você pode usar para determinadas variáveis:
| Variable | Description |
|---|---|
| LOCALIZAÇÃO | A região do Azure em que você deseja criar seu cluster. |
| GRUPO_DE_RECURSOS | O nome do grupo de recursos do Azure em que você deseja criar o cluster. |
| ID_DE_ASSINATURA | A ID da sua assinatura do Azure. |
| CUSTOM_LOCATION | Esse argumento especifica um local personalizado da instância do Nexus. |
| CSN_ARM_ID | A ID de CSN é o identificador exclusivo para a rede de serviços de nuvem que você deseja usar. |
| CNI_ARM_ID | O ID CNI é o identificador exclusivo para a interface de rede a ser usada pelo tempo de execução do contêiner. |
| AAD_ADMIN_GROUP_OBJECT_ID | A ID do objeto do grupo Microsoft Entra que deve ter privilégios de administrador no cluster. |
| CLUSTER_NAME | O nome que você deseja dar ao cluster do Nexus Kubernetes. |
| K8S_VERSION | A versão do Kubernetes que você deseja usar. |
| ADMIN_USERNAME | O nome de usuário do administrador do cluster. |
| SSH_PUBLIC_KEY | A chave pública SSH usada para comunicação segura com o cluster. |
| CONTROL_PLANE_COUNT | O número de nós do plano de gerenciamento para o cluster. |
| CONTROL_PLANE_VM_SIZE | O tamanho da máquina virtual para os nós do plano de controle. |
| INITIAL_AGENT_POOL_NAME | O nome do pool inicial de agentes. |
| INITIAL_AGENT_POOL_COUNT | O número de nós no grupo de agentes inicial. |
| INITIAL_AGENT_POOL_VM_SIZE | O tamanho da máquina virtual para o pool de agentes inicial. |
| POD_CIDR | O intervalo de endereços de rede para os pods do Kubernetes no cluster, usando a notação CIDR. |
| SERVICE_CIDR | O intervalo de rede para os serviços do Kubernetes no cluster, na notação CIDR. |
| DNS_SERVICE_IP | O endereço IP do serviço DNS do Kubernetes. |
Depois de definir essas variáveis, você poderá executar o comando da CLI do Azure para criar o cluster. Adicione o --debug sinalizador no final para fornecer uma saída mais detalhada para fins de solução de problemas.
Para definir essas variáveis, use os comandos de conjunto a seguir e substitua os valores de exemplo por seus valores preferenciais. Você também pode usar os valores padrão para algumas das variáveis, conforme mostrado no exemplo a seguir:
RESOURCE_GROUP="myResourceGroup"
SUBSCRIPTION_ID="<Azure subscription ID>"
LOCATION="$(az group show --name $RESOURCE_GROUP --query location --subscription $SUBSCRIPTION_ID -o tsv)"
CUSTOM_LOCATION="/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
CSN_ARM_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/cloudServicesNetworks/<csn-name>"
CNI_ARM_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/l3Networks/<l3Network-name>"
AAD_ADMIN_GROUP_OBJECT_ID="00000000-0000-0000-0000-000000000000"
CLUSTER_NAME="myNexusK8sCluster"
K8S_VERSION="v1.24.9"
ADMIN_USERNAME="azureuser"
SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
CONTROL_PLANE_SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
AGENT_POOL_SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
CONTROL_PLANE_COUNT="1"
CONTROL_PLANE_VM_SIZE="NC_G6_28_v1"
INITIAL_AGENT_POOL_NAME="${CLUSTER_NAME}-nodepool-1"
INITIAL_AGENT_POOL_COUNT="1"
INITIAL_AGENT_POOL_VM_SIZE="NC_P10_56_v1"
POD_CIDR="10.244.0.0/16"
SERVICE_CIDR="10.96.0.0/16"
DNS_SERVICE_IP="10.96.0.10"
Importante
É essencial que você substitua os espaços reservados para CUSTOM_LOCATION, CSN_ARM_ID, CNI_ARM_ID e AAD_ADMIN_GROUP_OBJECT_ID por seus valores reais antes de executar esses comandos.
Depois de definir essas variáveis, você pode criar o cluster kubernetes executando o seguinte comando da CLI do Azure:
az networkcloud kubernetescluster create \
--name "${CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--subscription "${SUBSCRIPTION_ID}" \
--extended-location name="${CUSTOM_LOCATION}" type=CustomLocation \
--location "${LOCATION}" \
--kubernetes-version "${K8S_VERSION}" \
--aad-configuration admin-group-object-ids="[${AAD_ADMIN_GROUP_OBJECT_ID}]" \
--admin-username "${ADMIN_USERNAME}" \
--ssh-key-values "${SSH_PUBLIC_KEY}" \
--control-plane-node-configuration \
count="${CONTROL_PLANE_COUNT}" \
vm-sku-name="${CONTROL_PLANE_VM_SIZE}" \
ssh-key-values='["${CONTROL_PLANE_SSH_PUBLIC_KEY}"]' \
--initial-agent-pool-configurations "[{count:${INITIAL_AGENT_POOL_COUNT},mode:System,name:${INITIAL_AGENT_POOL_NAME},vm-sku-name:${INITIAL_AGENT_POOL_VM_SIZE},ssh-key-values:['${AGENT_POOL_SSH_PUBLIC_KEY}']}]" \
--network-configuration \
cloud-services-network-id="${CSN_ARM_ID}" \
cni-network-id="${CNI_ARM_ID}" \
pod-cidrs="[${POD_CIDR}]" \
service-cidrs="[${SERVICE_CIDR}]" \
dns-service-ip="${DNS_SERVICE_IP}"
Se não houver capacidade suficiente para implantar nós de cluster solicitados, uma mensagem de erro será exibida. No entanto, essa mensagem não fornece detalhes sobre a capacidade disponível. Ele afirma que a criação do cluster não pode continuar devido à capacidade insuficiente.
Observação
O cálculo de capacidade leva em conta todo o cluster de plataforma, em vez de ser limitado a racks individuais. Portanto, se um pool de agentes for criado em uma zona (em que um rack é igual a uma zona) com capacidade insuficiente, mas outra zona tiver capacidade suficiente, a criação do cluster continuará, mas acabará atingindo o tempo limite. Essa abordagem para verificação de capacidade só fará sentido se uma zona específica não for especificada durante a criação do cluster ou do pool de agentes.
Após alguns minutos, o comando conclui e retorna informações sobre o cluster. Para obter opções mais avançadas, consulte Início Rápido: Implantar um cluster kubernetes do Azure Nexus usando o Bicep.
Examinar os recursos implantados
Após a conclusão da implantação, você pode exibir os recursos usando a CLI ou o portal do Azure.
Para exibir os detalhes do myNexusK8sCluster cluster no myResourceGroup grupo de recursos, execute o seguinte comando da CLI do Azure:
az networkcloud kubernetescluster show \
--name myNexusK8sCluster \
--resource-group myResourceGroup
Além disso, para obter uma lista de nomes de pool de agentes associados ao myNexusK8sCluster cluster no myResourceGroup grupo de recursos, você pode usar o seguinte comando da CLI do Azure.
az networkcloud kubernetescluster agentpool list \
--kubernetes-cluster-name myNexusK8sCluster \
--resource-group myResourceGroup \
--output table
Conectar-se ao cluster
Agora que o cluster Kubernetes do Nexus foi criado e conectado com êxito ao Azure Arc, você pode se conectar facilmente a ele usando o recurso de conexão de cluster. A conexão de cluster permite que você acesse e gerencie seu cluster com segurança de qualquer lugar, tornando conveniente para tarefas interativas de desenvolvimento, depuração e administração de cluster.
Para obter informações mais detalhadas sobre as opções disponíveis, consulte conectar-se a um cluster Kubernetes do Nexus Operator da Azure.
Observação
Quando você cria um cluster do Nexus Kubernetes, o Nexus cria automaticamente um grupo de recursos gerenciado dedicado a armazenar os recursos do cluster. Dentro desse grupo, o recurso de cluster conectado Arc é estabelecido.
Para acessar o cluster, você precisa configurar a conexão de cluster kubeconfig. Depois de se conectar à CLI do Azure com a entidade relevante do Microsoft Entra, você pode obter o kubeconfig necessário para se comunicar com o cluster a partir de qualquer lugar, mesmo fora do firewall que o cerca.
Definir
CLUSTER_NAMEeRESOURCE_GROUPSUBSCRIPTION_IDvariáveis.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>Consultar o grupo de recursos gerenciados com
aze armazenar emMANAGED_RESOURCE_GROUPaz account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)O comando a seguir inicia um proxy connectedk8s que permite que você se conecte ao servidor de API do Kubernetes para o cluster Kubernetes do Nexus especificado.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &Use
kubectlpara enviar solicitações para o cluster:kubectl get pods -AAgora você deve ver uma resposta do cluster que contém a lista de todos os nós.
Observação
Se você vir a mensagem de erro "Falha ao postar o token de acesso no proxy do cliente Falha ao se conectar à MSI", talvez seja necessário executar uma nova autenticação az login com o Azure.
Adicionar um pool de agentes
O cluster criado na etapa anterior tem um único pool de nós. Vamos adicionar um segundo pool de agentes usando o az networkcloud kubernetescluster agentpool create comando. O exemplo a seguir cria um pool de agentes chamado myNexusK8sCluster-nodepool-2:
Você também pode usar os valores padrão para algumas das variáveis, conforme mostrado no exemplo a seguir:
RESOURCE_GROUP="myResourceGroup"
CUSTOM_LOCATION="/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
CLUSTER_NAME="myNexusK8sCluster"
AGENT_POOL_NAME="${CLUSTER_NAME}-nodepool-2"
AGENT_POOL_VM_SIZE="NC_P10_56_v1"
AGENT_POOL_COUNT="1"
AGENT_POOL_MODE="User"
Depois de definir essas variáveis, você pode adicionar um pool de agentes executando o seguinte comando da CLI do Azure:
az networkcloud kubernetescluster agentpool create \
--name "${AGENT_POOL_NAME}" \
--kubernetes-cluster-name "${CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--subscription "${SUBSCRIPTION_ID}" \
--extended-location name="${CUSTOM_LOCATION}" type=CustomLocation \
--count "${AGENT_POOL_COUNT}" \
--mode "${AGENT_POOL_MODE}" \
--vm-sku-name "${AGENT_POOL_VM_SIZE}"
Após alguns minutos, o comando conclui e retorna informações sobre o pool de agentes. Para obter opções mais avançadas, consulte Início Rápido: Implantar um cluster kubernetes do Azure Nexus usando o Bicep.
Observação
Você pode adicionar vários pools de agentes durante a criação inicial do próprio cluster usando as configurações iniciais do pool de agentes. No entanto, se você quiser adicionar pools de agentes após a criação inicial, poderá utilizar o comando acima para criar pools de agentes adicionais para o cluster Do Nexus Kubernetes.
O exemplo de saída a seguir ilustra a criação com sucesso do pool de agentes.
$ az networkcloud kubernetescluster agentpool list --kubernetes-cluster-name myNexusK8sCluster --resource-group myResourceGroup --output table
This command is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Count Location Mode Name ProvisioningState ResourceGroup VmSkuName
------- ---------- ------ ---------------------------- ------------------- --------------- -----------
1 eastus System myNexusK8sCluster-nodepool-1 Succeeded myResourceGroup NC_P10_56_v1
1 eastus User myNexusK8sCluster-nodepool-2 Succeeded myResourceGroup NC_P10_56_v1
Limpar os recursos
Quando não for mais necessário, exclua o grupo de recursos. O grupo de recursos e todos os recursos do grupo de recursos são excluídos.
Use o comando az group delete para remover o grupo de recursos, o cluster do Kubernetes e todos os recursos relacionados, exceto os recursos de rede do Operador Nexus.
az group delete --name myResourceGroup --yes --no-wait
Próximas etapas
Agora você pode implantar os CNFs diretamente por meio da conexão de cluster ou por meio do Gerenciador de Serviços de Operador do Azure.