Tutorial: Implantar nós virtuais em Instâncias de Contêiner do Azure no cluster do Serviço de Kubernetes do Azure
IInício Rápido: Implantar um cluster do Serviço de Kubernetes do Azure (AKS) usando o portal do Azure. Depois de implantar o cluster do AKS, você usa um gráfico do Helm para implantar nós virtuais em Instâncias de Contêiner do Azure.
Pré-requisitos
Este tutorial pressupõe que você tenha o seguinte:
- CLI do Azure
- kubectl (versão 1.29+)
- Helm
- Git
Entrar no Azure
Entre no portal do Microsoft Azure em https://portal.azure.com
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Criar uma rede virtual para o cluster do AKS
Na home page do portal do Azure, selecione Criar um recurso.
Selecione Rede>Rede virtual.
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 os pods em execução em nós virtuais precisarem de rede de saída, você deve configurar um gateway da NAT e configurar a sub-rede
cg
para usá-lo. Consulte Como configurar um gateway da 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 com seus padrões e selecione Examinar + criar.
Quando a validação for concluída, um resumo das configurações de seu contêiner será exibido. Selecione Criar para enviar sua solicitação de implantação de rede virtual.
Quando a implantação é iniciada, aparece uma notificação que indica que a implantação está em andamento. Outra notificação é exibida quando a rede virtual é implantada.
Criar seu cluster do AKS
Na home page do portal do Azure, selecione Criar um recurso.
Selecione Contêineres>Serviço de Kubernetes do Azure (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 do 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 pool de nós agentpool
. Esses nós serão usados para hospedar a infraestrutura de nós virtuais. Não selecione Enable virtual nodes
. Isso se refere à oferta de nós virtuais anteriores para o AKS.
No painel 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 do Serviço de 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 com seus padrões e selecione Examinar + criar.
Quando a validação for concluída, um resumo das configurações de seu cluster do AKS será exibido. Selecione Criar para enviar sua solicitação de implantação de cluster do AKS.
Quando a implantação é iniciada, aparece uma notificação que indica que a implantação está em andamento. Outra notificação é exibida quando o cluster do AKS é implantado.
Atribuir permissões à identidade gerenciada do cluster do AKS
Quando você implanta um cluster do 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 asAtribuições de função do Azure. Em seguida, adicione as duas seguintes atribuições de função:
- Escopo:
Resource group
- Assinatura:
<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 de ACI no grupo de recursos do nó.
- Escopo:
Resource group
- Assinatura:
<your subscription name>
- Grupo de recursos:
virtualnodesresourcegroup
- Função:
Contributor
Essa atribuição de função permite que grupos de contêineres da ACI sejam injetados na rede virtual que você criou neste grupo de recursos.
Instalar nós virtuais em Instâncias de Contêiner do Azure usando o gráfico do Helm
Use a CLI do Azure para efetuar pull da configuração e das credenciais para o cluster do AKS que você criou. Isso configurará o kubectl para o cluster do 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 da ACI em sua assinatura para que você possa implantar grupos de contêineres.
az provider register -n Microsoft.ContainerInstance
Clone o repositório GitHub virtualnodesOnAzureContainerInstances. O gráfico do Helm para instalar nós virtuais nas Instâncias de Contêiner do Azure está localizado na pasta Helm/virtualnode
.
Use o seguinte comando para instalar o gráfico do Helm:
helm install virtualnode <cloned repository location>\Helm\virtualnode
Em um minuto, um novo nó virtual será registrado e em um estado Pronto no cluster do AKS. Você pode verificar o status dos nós de cluster do AKS com kubectl.
kubectl get nodes
Implantar seu primeiro pod em um nó virtual
Você pode interagir com nós virtuais como qualquer outro nó do Kubernetes. Por exemplo, o YAML de exemplo abaixo implantará um pod no nó virtual em seu cluster do AKS. Observe o uso de seletores de nó e tolerâncias 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 o 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 localizar erros):
kubectl describe pods demo-pod
Para exibir logs para o pod:
kubectl logs demo-pod
Para obter um shell para o pod:
kubectl exec demo-pod -it -- /bin/bash
Próximas etapas
Neste tutorial, você criou um cluster do AKS no portal do Azure, implantou nós virtuais em Instâncias de Contêiner do Azure usando um gráfico do 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 pode utilizar a maioria dos recursos e construções do Kubernetes nesses pods prontos para uso!
Se você estiver procurando utilizar recursos ou comportamentos de nós virtuais especializados para seus pods, consulte Personalizações de Pod.
Se você estiver procurando personalizar a instalação do nó virtual, consulte Personalizações de Nó.
Se você estiver planejando implantar cargas de trabalho de alta escala (milhares de pods por minuto) em nós virtuais, temos as melhores práticas e recomendações.