Guia de início rápido: criar um cluster do Azure Nexus Kubernetes usando a CLI do Azure
- Implante um cluster Kubernetes do Azure Nexus usando a CLI do Azure.
Antes de começar
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
Instale a versão mais recente das extensões necessárias da CLI do Azure.
Este artigo requer a versão 2.49.0 ou posterior da CLI do Azure. Se estiver 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 account
comando.Consulte a tabela VM SKU na seção de referência para obter a lista de SKUs de VM suportadas.
Consulte as versões suportadas do Kubernetes para obter a lista de versões suportadas do Kubernetes.
Crie um grupo de recursos usando o
az group create
comando. 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ê será solicitado a especificar um local. Esse local é o local de armazenamento dos metadados do grupo de recursos e onde os recursos são executados no Azure se você não especificar outra região durante a criação do recurso. O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.az group create --name myResourceGroup --location eastus
O exemplo de saída a seguir é semelhante à 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 implementar um ficheiro Bicep ou modelo do ARM, precisa de acesso de escrita nos recursos que está a implementar e acesso a todas as operações no tipo de recurso Microsoft.Resources/deployments. Por exemplo, para implantar um cluster, você precisa das permissões Microsoft.NetworkCloud/kubernetesclusters/write e Microsoft.Resources/deployments/*. Para obter uma lista de funções e permissões, veja Funções incorporadas do Azure.
Você precisa da
custom location
ID do recurso do cluster do 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 sem problemas, é aconselhável consultar as equipas de apoio relevantes para obter assistência.
Este guia de introdução parte do princípio de que possui conhecimentos básicos dos conceitos do Kubernetes. Para obter mais informações, consulte Conceitos principais do Kubernetes para o Serviço Kubernetes do Azure (AKS).
Criar um cluster do Azure Nexus Kubernetes
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:
Variável | Description |
---|---|
LOCALIZAÇÃO | A região do Azure onde você deseja criar seu cluster. |
RESOURCE_GROUP | O nome do grupo de recursos do Azure onde você deseja criar o cluster. |
SUBSCRIPTION_ID | A ID da sua assinatura do Azure. |
CUSTOM_LOCATION | Esse argumento especifica um local personalizado da instância do Nexus. |
CSN_ARM_ID | CSN ID é o identificador exclusivo para a rede de serviços de nuvem que você deseja usar. |
CNI_ARM_ID | CNI ID é 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 seu cluster 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 que é usada para comunicação segura com o cluster. |
CONTROL_PLANE_COUNT | O número de nós do plano de controle 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 de agentes inicial. |
INITIAL_AGENT_POOL_COUNT | O número de nós no pool 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 rede para os pods do Kubernetes no cluster, em notação CIDR. |
SERVICE_CIDR | O intervalo de rede para os serviços do Kubernetes no cluster, em notação CIDR. |
DNS_SERVICE_IP | O endereço IP do serviço DNS do Kubernetes. |
Depois de definir essas variáveis, você pode 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 seguintes comandos set e substitua os valores de exemplo pelos seus valores preferidos. 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 com seus valores reais antes de executar esses comandos.
Depois de definir essas variáveis, você pode criar o cluster do 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 os nós de cluster solicitados, uma mensagem de erro será exibida. No entanto, esta mensagem não fornece detalhes sobre a capacidade disponível. Ele afirma que a criação do cluster não pode prosseguir devido à capacidade insuficiente.
Nota
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 (onde um rack é igual a uma zona) com capacidade insuficiente, mas outra zona tiver capacidade suficiente, a criação do cluster continuará, mas acabará expirando. Essa abordagem para verificação de capacidade só faz sentido se uma zona específica não for especificada durante a criação do cluster ou 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 Guia de início rápido: implantar um cluster do Kubernetes do Azure Nexus usando o Bicep.
Rever os recursos implementados
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
myResourceGroup
cluster no 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
Ligar ao cluster
Agora que o cluster Nexus Kubernetes foi criado com êxito e conectado 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-o 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 do Operador do Azure.
Nota
Quando você cria um cluster 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 ao Arc é estabelecido.
Para acessar o cluster, você precisa configurar a conexão kubeconfig
do cluster . Depois de iniciar sessão na CLI do Azure com a entidade Microsoft Entra relevante, pode obter o kubeconfig
necessário para comunicar com o cluster a partir de qualquer lugar, mesmo fora da firewall que o rodeia.
Definir
CLUSTER_NAME
,RESOURCE_GROUP
eSUBSCRIPTION_ID
variáveis.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Consultar grupo de recursos gerenciados com
az
e armazenar emMANAGED_RESOURCE_GROUP
az 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 Nexus Kubernetes especificado.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Use
kubectl
para enviar solicitações para o cluster:kubectl get pods -A
Agora você deve ver uma resposta do cluster contendo a lista de todos os nós.
Nota
Se você vir a mensagem de erro "Falha ao postar token de acesso ao proxy do clienteFalha ao se conectar ao MSI", talvez seja necessário executar um az login
para autenticar novamente 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 é concluído e retorna informações sobre o pool de agentes. Para obter opções mais avançadas, consulte Guia de início rápido: implantar um cluster do Kubernetes do Azure Nexus usando o Bicep.
Nota
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 seu cluster Nexus Kubernetes.
O exemplo de saída a seguir se assemelha à criação bem-sucedida 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
Clean up resources (Limpar recursos)
Quando já não for necessário, elimine o grupo de recursos. O grupo de recursos e todos os recursos no grupo de recursos são excluídos.
Use o comando az group delete para remover o grupo de recursos, o cluster Kubernetes e todos os recursos relacionados, exceto os recursos de rede do Operator Nexus.
az group delete --name myResourceGroup --yes --no-wait
Próximos passos
Agora você pode implantar os CNFs diretamente por meio da conexão de cluster ou por meio do Azure Operator Service Manager.