Tutorial: Implantar nós virtuais em instâncias de contêiner do Azure em seu cluster do Serviço Kubernetes do Azure
Neste tutorial, você usa o portal do Azure para implantar um cluster do Serviço Kubernetes do Azure (AKS). Depois de implantar o cluster AKS, você usa um gráfico Helm para implantar nós virtuais em Instâncias de Contêiner do Azure.
Pré-requisitos
Este tutorial pressupõe que você tenha as seguintes ferramentas instaladas:
- CLI do Azure
- Kubectl (Versão 1.29+)
- 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.
Selecione Rede virtual de rede>.
Na página Noções básicas, escolha uma assinatura e insira os seguintes valores:
- Grupo de recursos: Criar novo>
virtualnodesresourcegroup
- Nome da rede virtual:
myvirtualnetwork
- Região:
East US
Na página Endereços IP, configure os seguintes espaços de endereço 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- A
cg
sub-rede deve ter uma delegação de sub-rede paraMicrosoft.ContainerInstance/containerGroups
. - Se seus pods em execução em nós virtuais precisarem de rede de saída, você deverá configurar um gateway NAT e configurar a
cg
sub-rede para usá-lo. Consulte Configurar um gateway NAT para endereço IP estático para tráfego de saída de um grupo de contêineres para obter instruções sobre essa configuração.
- A
Deixe todas as outras configurações como padrão e selecione Revisar + criar.
Quando a validação for concluída, será mostrado um resumo das configurações da rede virtual. Selecione Criar para enviar sua solicitação de implantaçã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 é implantada.
Crie seu cluster AKS
Na home page do portal do Azure, selecione Criar um recurso.
Selecione Containers>Azure Kubernetes Service (AKS).
Na página Noções básicas, escolha a mesma assinatura usada para criar a rede virtual e insira os seguintes valores:
- Grupo de recursos:
virtualnodesresourcegroup
- Configuração predefinida do cluster:
Dev/Test
- Nome do cluster Kubernetes:
virtualnodescluster
- Região:
East US
- Versão do Kubernetes: Qualquer versão começando com
1.29.
- por exemplo,1.29.10
- Atualização automática:
Enabled with patch
Na página Pools de nós, selecione qualquer SKU de VM com pelo menos 4 vCPUs e 16 GB de RAM para o agentpool
pool de nós. Esses nós serão usados para hospedar a infraestrutura de nós virtuais. Não selecionar Enable virtual nodes
- refere-se à oferta anterior de nós virtuais para o AKS.
Na página Rede, insira os seguintes valores:
- Configuração de rede:
Azure CNI Node Subnet
- Traga sua própria rede virtual do Azure:
Enabled
- Rede virtual:
myvirtualnetwork
- Sub-rede do cluster:
aks
- Intervalo de endereços de serviço do Kubernetes:
10.4.0.0/16
- Endereço IP do serviço DNS do Kubernetes:
10.4.0.10
- Política de rede:
Calico
Deixe todas as outras configurações como padrão e selecione Revisar + criar.
Quando a validação for concluída, será mostrado um resumo das configurações do cluster AKS. Selecione Criar para enviar sua solicitação de implantação de 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 é implantado.
Atribuir permissões à identidade gerenciada do cluster AKS
Quando você implanta um cluster AKS, o AKS cria um grupo de recursos de nó na mesma assinatura para hospedar a infraestrutura do cluster. Por padrão, esse grupo de recursos tem um nome como MC_<resource group>_<AKS cluster>_<region>
. Para este 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 gerenciada com o nome virtualnodescluster_agentpool
. Navegue até essa identidade gerenciada e selecione Atribuições de função do Azure. Em seguida, adicione as duas atribuições de função a seguir:
- Âmbito:
Resource group
- Subscrição:
<your subscription name>
- Grupo de recursos:
MC_virtualnodesresourcegroup_virtualnodescluster_eastus
- Função:
Contributor
Essa atribuição de função permite a criação de grupos de contêineres ACI no grupo de recursos do nó.
- Âmbito:
Resource group
- Subscrição:
<your subscription name>
- Grupo de recursos:
virtualnodesresourcegroup
- Função:
Contributor
Essa atribuição de função permite que grupos de contêineres ACI sejam injetados na rede virtual criada nesse grupo de recursos.
Instalar nós virtuais em instâncias de contêiner do Azure usando o gráfico Helm
Use a CLI do Azure para extrair a configuração e as credenciais para o cluster AKS que você criou. Isso configurará o kubectl para seu cluster AKS.
az login
az account set --subscription <your subscription ID>
az aks get-credentials --name virtualnodescluster --resource-group virtualnodesresourcegroup
Além disso, registraremos o provedor de recursos ACI em sua assinatura para que você possa implantar grupos de contêineres.
az provider register -n Microsoft.ContainerInstance
Clone o repositório virtualnodesOnAzureContainerInstances GitHub. O gráfico Helm para instalar nós virtuais em Instâncias de Contêiner do Helm/virtualnode
Azure está localizado na pasta.
Instale o gráfico Helm usando o seguinte comando:
helm install virtualnode <cloned repository location>\Helm\virtualnode
Dentro de um minuto, um novo nó virtual será registrado e em um estado Pronto no cluster AKS. Você pode verificar o status de seus nós de cluster AKS com kubectl.
kubectl get nodes
Implante seu primeiro pod em um nó virtual
Você pode interagir com nós virtuais como qualquer outro nó do Kubernetes. Por exemplo, o exemplo YAML abaixo implantará um pod no nó virtual em seu cluster AKS - observe o uso de seletores de nó e tolerações para colocar o pod adequadamente. Você pode implantar o YAML usando 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 que seu pod for implantado, você poderá interagir com ele exatamente como faria com um pod Kubernetes "normal".
Por exemplo, para ver o status e os eventos do pod (útil para encontrar erros!):
kubectl describe pods demo-pod
Para visualizar os logs do pod:
kubectl logs demo-pod
Para obter uma concha para o pod:
kubectl exec demo-pod -it -- /bin/bash
Próximos passos
Neste tutorial, você criou um cluster AKS no portal do Azure, implantou nós virtuais em Instâncias de Contêiner do Azure usando um gráfico Helm e implantou um pod em seu nó virtual. Agora você tem familiaridade básica com como executar pods do Kubernetes em seu nó virtual, e você pode utilizar a maioria dos recursos e construções do Kubernetes nesses pods prontos para uso!
Se você estiver procurando utilizar recursos ou comportamentos especializados de nó virtual para seus pods, consulte Personalizações de pods.
Se você estiver procurando personalizar a instalação do nó virtual, consulte Personalizações do nó.
Se você está planejando implantar cargas de trabalho de alta escala (milhares de pods por minuto) em nós virtuais, temos práticas recomendadas e recomendações.