Tutorial: Implementar nós virtuais no Azure Container Instances no seu cluster do Azure Kubernetes Service

Neste tutorial, utilizas Azure portal para implementar um cluster Azure Kubernetes Service (AKS). Depois de implementar o cluster AKS, utiliza-se um gráfico de Helm para implantar nós virtuais no Azure Container Instances.

Prerequisites

Este tutorial assume que tens as seguintes ferramentas instaladas:

  • CLI do Azure
  • kubectl (versão 1.30+)
  • Helm
  • Git

Iniciar sessão no Azure

Inicie sessão no portal do Azure em https://portal.azure.com

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

Crie uma rede virtual para o seu cluster AKS

Na home page do portal do Azure, selecione Criar um recurso.

Captura de ecrã a mostrar como começar a criar uma nova rede virtual no portal Azure.

Selecione Rede>Rede virtual.

Captura de ecrã a mostrar como selecionar uma nova rede virtual que pretende criar no portal Azure.

Na página Básicos , escolha uma subscrição e insira os seguintes valores:

  • Grupo de recursos: Criar novo>virtualnodesresourcegroup
  • Nome da rede virtual: myvirtualnetwork
  • Região: East US

Captura de ecrã a mostrar como configurar a página Basics para criação de redes virtuais no portal Azure.

Na página de endereços IP , configure os seguintes espaços de endereçamento e sub-redes:

  • 10.0.0.0/16: default sub-rede com tamanho /24
  • 10.1.0.0/16: aks sub-rede com tamanho /16
  • 10.2.0.0/16: cg sub-rede com tamanho /16

Captura de ecrã a mostrar como configurar a página de endereços IP para criação de redes virtuais no portal Azure.

Deixe todas as outras configurações como padrão e selecione Revisar + criar.

Quando a validação termina, é mostrado um resumo das definições da rede virtual. Selecione Criar para submeter o seu pedido de implementação de rede virtual.

Quando a implantação é iniciada, aparece uma notificação indicando que a implantação está em andamento. Outra notificação é exibida quando a rede virtual está implantada.

Crie o seu cluster AKS

Na home page do portal do Azure, selecione Criar um recurso.

Captura de ecrã a mostrar como começar a criar uma nova rede virtual no portal Azure.

Selecione Containers>Azure Kubernetes Service (AKS).

Captura de ecrã a mostrar como selecionar um novo cluster AKS que pretende criar no portal Azure.

Na página Básicos , escolha a mesma subscrição que usou para criar a rede virtual e introduza os seguintes valores:

  • Grupo de recursos: virtualnodesresourcegroup
  • Configuração de pré-definição do cluster: Dev/Test
  • Nome do cluster Kubernetes: virtualnodescluster
  • Região: East US
  • Versão Kubernetes: Qualquer versão começando com 1.30. - por exemplo, 1.30.9
  • Atualização automática: Enabled with patch

Captura de ecrã a mostrar como configurar a página Basics para criação de clusters AKS no portal Azure.

Na página Node pools, selecione qualquer SKU de VM com pelo menos 4 vCPUs e 16 GB de RAM para o conjunto de nós agentpool. Estes nós serão usados para alojar a infraestrutura de nós virtuais. Não selecione Enable virtual nodes – isto diz respeito à anterior oferta de nós virtuais para o AKS.

Captura de ecrã que mostra como configurar a página de grupos de nós para a criação de um cluster do AKS no portal do Azure.

Na página de Redes , introduza os seguintes valores:

  • Configuração da rede: Azure CNI Node Subnet
  • Traga a sua própria rede virtual Azure: Enabled
  • Rede virtual: myvirtualnetwork
  • Sub-rede do cluster: aks
  • Intervalo de endereços do serviço Kubernetes: 10.4.0.0/16
  • Endereço IP do serviço DNS Kubernetes: 10.4.0.10
  • Política de rede: Calico

Captura de ecrã a mostrar como configurar a página de Rede para criação de clusters AKS no portal Azure.

Deixe todas as outras configurações como padrão e selecione Revisar + criar.

Quando a validação termina, é mostrado um resumo das definições do cluster AKS. Selecione Criar para submeter o seu pedido de implantação do cluster AKS.

Quando a implantação é iniciada, aparece uma notificação indicando que a implantação está em andamento. Outra notificação é exibida quando o cluster AKS foi implementado.

Atribuir permissões à identidade gerida do cluster AKS

Quando implementa um cluster AKS, o AKS cria um grupo de recursos de nós na mesma subscrição para alojar a infraestrutura do cluster. Por defeito, este grupo de recursos tem um nome como MC_<resource group>_<AKS cluster>_<region>. Neste tutorial, o grupo de recursos do nó deve ter o nome MC_virtualnodesresourcegroup_virtualnodescluster_eastus.

Um dos recursos criados no grupo de recursos do nó é uma identidade gerida com o nome virtualnodescluster_agentpool. Aceda a esta identidade gerida e selecione Atribuições de funções do Azure. Depois adiciona as seguintes duas atribuições de funções:

  • Âmbito: Resource group
  • Subscrição: <your subscription name>
  • Grupo de recursos: MC_virtualnodesresourcegroup_virtualnodescluster_eastus
  • Função: Contributor

Esta atribuição de função permite a criação de grupos de contentores ACI no grupo de recursos do nó.

  • Âmbito: Resource group
  • Subscrição: <your subscription name>
  • Grupo de recursos: virtualnodesresourcegroup
  • Função: Contributor

Esta atribuição de funções permite que grupos de contentores ACI sejam injetados na rede virtual que criou neste grupo de recursos.

Captura de ecrã que mostra as atribuições de funções adicionadas à identidade gerida do AKS.

Instale nós virtuais no Azure Container Instances usando o gráfico de Helm

Usa o CLI do Azure para puxar a configuração e as credenciais do cluster AKS que criaste. Isto irá configurar o kubectl para o seu cluster AKS.

az login

az account set --subscription <your subscription ID>

az aks get-credentials --name virtualnodescluster --resource-group virtualnodesresourcegroup

Além disso, registaremos o fornecedor de recursos ACI na sua subscrição para que possa implementar grupos de contentores.

az provider register -n Microsoft.ContainerInstance

Clone o repositório virtualnodesOnAzureContainerInstances GitHub. O gráfico de Helm para instalar nós virtuais em Azure Container Instances está localizado na pasta Helm/virtualnode.

Instale o Helm chart utilizando o seguinte comando:

helm install virtualnode <cloned repository location>\Helm\virtualnode

No espaço de um minuto, um novo nó virtual será registado no cluster do AKS e ficará no estado “Pronto”. Podes verificar o estado dos teus nós do cluster AKS com kubectl.

kubectl get nodes

Captura de ecrã que mostra a saída do comando kubectl get nodes, com um nó virtual em estado Ready.

Implante o seu primeiro pod num nó virtual

Pode interagir com nós virtuais tal como com quaisquer outros nós do Kubernetes. Por exemplo, o YAML de exemplo abaixo irá implantar um pod no nó virtual do seu cluster AKS – note o uso de seletores de nós e tolerâncias para posicionar o pod de forma adequada. Podes implementar o YAML usando o kubectl apply.

apiVersion: v1
kind: Pod
metadata:
  annotations:    
  name: demo-pod
spec:
  containers:
  - command:
    - /bin/bash
    - -c
    - 'counter=1; while true; do echo "Hello, World! Counter: $counter"; counter=$((counter+1)); sleep 1; done'
    image: mcr.microsoft.com/azure-cli
    name: hello-world-counter
    resources:
      limits:
        cpu: 2250m
        memory: 2256Mi
      requests:
        cpu: 100m
        memory: 128Mi
  nodeSelector:
    virtualization: virtualnode2
  tolerations:
  - effect: NoSchedule
    key: virtual-kubelet.io/provider
    operator: Exists

Depois de o teu pod ser lançado, podes interagir com ele exatamente como farias com um pod "normal" do Kubernetes.

Por exemplo, para ver o estado e os eventos do pod (útil para encontrar erros!):

kubectl describe pods demo-pod

Para ver os registos do pod:

kubectl logs demo-pod

Para obter uma carcaça para a cápsula:

kubectl exec demo-pod -it -- /bin/bash

Passos seguintes

Neste tutorial, criaste um cluster AKS no portal Azure, implementaste nós virtuais no Azure Container Instances usando um gráfico de Helm e implementaste um pod no teu nó virtual. Agora já tens uma familiaridade básica sobre como executar pods do Kubernetes no teu nó virtual e podes utilizar, de imediato, a maioria das capacidades e conceitos do Kubernetes nesses pods!

Se procura utilizar funcionalidades ou comportamentos específicos de nodos virtuais para os seus pods, consulte Personalizações de Pods.

Se pretende personalizar a instalação do seu nó virtual, consulte Personalizações do nó.

Se estiver a planear implementar cargas de trabalho de grande escala (milhares de pods por minuto) em nós virtuais, temos boas práticas e recomendações.