Início Rápido: criar um cluster do Kubernetes do Nexus do Azure usando a CLI do Azure
- Implantar um cluster do Kubernetes do Nexus do Azure usando a CLI do Azure.
Antes de começar
Caso você não tenha uma assinatura 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, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções 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 estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com 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 extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Instale a última versão das extensões da CLI do Azure necessárias.
Este artigo requer a versão 2.49.0 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.
Se tiver várias assinaturas do Azure, selecione a ID da assinatura adequada para cobrança dos recursos usando o comando
az account
.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 obter 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 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 implantar um arquivo Bicep ou um modelo do ARM, você precisa de acesso de gravação nos recursos que está implantando e acesso a todas as operações no tipo de recurso Microsoft.Resources/implantações. Por exemplo, para implantar um cluster, você precisa das 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 ID do recurso
custom location
do cluster do Nexus do Operador do Azure.Você precisa criar várias redes de acordo com os requisitos específicos de sua carga de trabalho, e é essencial ter os endereços IP apropriados disponíveis para suas cargas de trabalho. Para garantir uma implementação tranquila, recomenda-se 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 do Kubernetes do Nexus do Azure
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 precisam ser definidas, juntamente com alguns valores padrão que você pode usar para determinadas variáveis:
Variável | Descrição |
---|---|
LOCALIZAÇÃO | A região do Azure na qual você deseja criar o cluster. |
RESOURCE_GROUP | O nome do grupo de recursos do Azure no qual você deseja criar o cluster. |
SUBSCRIPTION_ID | A ID da sua assinatura do Azure. |
CUSTOM_LOCATION | Este argumento especifica um local personalizado da instância 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 | A ID de CNI é o identificador exclusivo para o adaptador de rede a ser usado pelo runtime do contêiner. |
AAD_ADMIN_GROUP_OBJECT_ID | O 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 Kubernetes do Nexus. |
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 painel de controle do cluster. |
CONTROL_PLANE_VM_SIZE | O tamanho da máquina virtual dos 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 do pool de agentes inicial. |
POD_CIDR | O intervalo de rede dos pods do Kubernetes no cluster, em notação CIDR. |
SERVICE_CIDR | O intervalo de rede dos 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ê poderá executar o comando da CLI do Azure para criar o cluster. Adicione o sinalizador --debug
no final para fornecer uma saída mais detalhada para fins de solução de problemas.
Para definir essas variáveis, use os comandos set a seguir e substitua os valores de exemplo pelos valores de sua preferência. 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 pelos 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, essa mensagem não fornece detalhes sobre a capacidade disponível. Ela indica que a criação do cluster não pode continuar devido à capacidade insuficiente.
Observação
O cálculo de capacidade leva em conta o cluster de toda a plataforma, em vez de se limitar a racks individuais. Portanto, se um pool de agentes for criado em uma zona (sendo 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 de verificação da 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 será concluído e retornará informações sobre o cluster. Para obter opções mais avançadas, consulte Início Rápido: Implantar um cluster do Kubernetes do Nexus do Azure usando o Bicep.
Examinar os recursos implantados
Depois que a implantação for concluída, você poderá exibir os recursos usando a CLI ou o portal do Azure.
Para exibir os detalhes do cluster myNexusK8sCluster
no grupo de recursos myResourceGroup
, 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 cluster myNexusK8sCluster
no grupo de recursos myResourceGroup
, 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 do 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 com segurança seu cluster 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 do Kubernetes do Operador Nexus do Azure.
Observação
Quando você cria um cluster do Kubernetes do Nexus, o Nexus cria automaticamente um grupo de recursos dedicado ao armazenamento dos recursos de cluster, dentro desse grupo, o recurso de cluster conectado do Arc é estabelecido.
Para acessar o cluster, você precisa configurar a conexão do cluster kubeconfig
. Depois de fazer logon na CLI do Azure com a entidade Microsoft Entra relevante, você pode obter o kubeconfig
necessário para se comunicar com o cluster de qualquer lugar, mesmo fora do firewall que o cerca.
Configure as variáveis
CLUSTER_NAME
,RESOURCE_GROUP
eSUBSCRIPTION_ID
.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Consultar o grupo de recursos gerenciados com o
az
e armazenar noMANAGED_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 especificado do Kubernetes do Nexus.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Use
kubectl
para enviar solicitações ao cluster:kubectl get pods -A
Agora você deve conseguir ver uma resposta do cluster contendo a lista de todos os nós.
Observação
Se estiver vendo a mensagem de erro "Falha ao postar o token de acesso no proxy do cliente ou Falha ao se conectar à MSI", talvez seja necessário executar um az login
para se autenticar novamente no 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 comando az networkcloud kubernetescluster agentpool create
. 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 será concluído e retornará informações sobre o pool de agentes. Para obter opções mais avançadas, consulte Início Rápido: Implantar um cluster do Kubernetes do Nexus do Azure 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 Kubernetes do Nexus.
O exemplo de saída a seguir é semelhante à 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
Limpar os recursos
Quando não for mais necessário, exclua 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 do Kubernetes e todos os recursos relacionados, exceto os recursos de rede do Nexus do Operador.
az group delete --name myResourceGroup --yes --no-wait
Próximas etapas
Agora você pode implantar os CNFs diretamente pela conexão de cluster ou pelo Gerenciador de Serviço do Operador do Azure.