Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os nós virtuais habilitam a comunicação de rede entre pods que são executados nas Instâncias de Contentor do Azure (ACI) e nos clusters do Serviço Kubernetes do Azure (AKS). Para fornecer essa comunicação, uma sub-rede de rede virtual é criada e permissões delegadas são atribuídas. Os nós virtuais só funcionam com clusters AKS criados usando redes avançadas (Azure CNI). Os clusters AKS são criados com rede básica (kubenet) por padrão.
Este artigo mostra como criar uma rede virtual e sub-redes e, em seguida, implantar um cluster AKS que usa rede avançada usando o portal do Azure.
Nota
Para obter uma visão geral da disponibilidade e limitações dos nós virtuais nas regiões, consulte Usar nós virtuais no AKS.
Antes de começar
Você precisa do provedor de serviços ACI registrado em sua assinatura.
Verifique o status do registro do provedor ACI usando o
az provider listcomando.az provider list --query "[?contains(namespace,'Microsoft.ContainerInstance')]" -o tableA saída de exemplo a seguir mostra que o provedor Microsoft.ContainerInstance está registrado:
Namespace RegistrationState RegistrationPolicy --------------------------- ------------------- -------------------- Microsoft.ContainerInstance Registered RegistrationRequiredSe o provedor for NotRegistered, registe-o com o comando
az provider register.az provider register --namespace Microsoft.ContainerInstance
Criar um cluster do AKS
- Navegue até a home page do portal do Azure.
- Selecione Criar um recurso>Contêineres.
- No recurso Serviço Kubernetes do Azure (AKS), selecione Criar.
-
Na página Noções básicas, configure as seguintes opções:
- Detalhes do projeto: selecione uma assinatura do Azure e, em seguida, selecione ou crie um grupo de recursos do Azure, como myResourceGroup.
- Detalhes do cluster: insira um nome de cluster do Kubernetes, como myAKSCluster. Selecione uma região e uma versão do Kubernetes para o cluster AKS.
- Selecione Next: Node pools e marque *Enable virtual nodes.
- Selecione Rever + criar.
- Após a conclusão da validação, selecione Criar.
Por padrão, esse processo cria uma identidade de cluster gerenciado, que é usada para comunicação de cluster e integração com outros serviços do Azure. Para obter mais informações, consulte Usar identidades gerenciadas. Você também pode usar um service principal como sua identidade de cluster.
Esse processo configura o cluster para rede avançada e os nós virtuais para usar sua própria sub-rede de rede virtual do Azure. A sub-rede tem permissões delegadas para conectar recursos do Azure entre o cluster AKS. Se você ainda não tiver uma sub-rede delegada, o portal do Azure criará e configurará uma rede virtual e uma sub-rede do Azure com os nós virtuais.
Ligar ao cluster
O Azure Cloud Shell é um shell interativo gratuito que você pode usar para executar as etapas neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta. Para gerir um cluster de Kubernetes, utilize kubectl, o cliente de linha de comandos do Kubernetes. O cliente kubectl está pré-instalado no Azure Cloud Shell.
Configure
kubectlpara se conectar ao cluster do Kubernetes usando oaz aks get-credentialscomando. O exemplo seguinte obtém credenciais para o nome do cluster myAKSCluster no grupo de recursos denominado myResourceGroup:az aks get-credentials --resource-group myResourceGroup --name myAKSClusterVerifique a conexão com o cluster usando o
kubectl get nodes.kubectl get nodesA saída de exemplo a seguir mostra o único nó de VM criado e o nó Linux virtual chamado virtual-node-aci-linux:
NAME STATUS ROLES AGE VERSION virtual-node-aci-linux Ready agent 28m v1.11.2 aks-agentpool-14693408-0 Ready agent 32m v1.11.2
Implantar um aplicativo de exemplo
No Azure Cloud Shell, crie um arquivo nomeado
virtual-node.yamle copie no seguinte YAML:apiVersion: apps/v1 kind: Deployment metadata: name: aci-helloworld spec: replicas: 1 selector: matchLabels: app: aci-helloworld template: metadata: labels: app: aci-helloworld spec: containers: - name: aci-helloworld image: mcr.microsoft.com/azuredocs/aci-helloworld ports: - containerPort: 80 nodeSelector: kubernetes.io/role: agent beta.kubernetes.io/os: linux type: virtual-kubelet tolerations: - key: virtual-kubelet.io/provider operator: ExistsO YAML define um nodeSelector e uma toleration, que permitem que o pod seja alocado no nó virtual. O pod recebe um endereço IP interno da sub-rede de rede virtual do Azure delegada para uso com nós virtuais.
Execute o aplicativo usando o
kubectl applycomando.kubectl apply -f virtual-node.yamlVeja os pods programados no nó usando o comando
kubectl get podscom o argumento-o wide.kubectl get pods -o wideA saída de exemplo a seguir mostra o pod
virtual-node-helloworldagendado no nóvirtual-node-linux.NAME READY STATUS RESTARTS AGE IP NODE virtual-node-helloworld-9b55975f-bnmfl 1/1 Running 0 4m 10.241.0.4 virtual-node-aci-linux
Nota
Se você usar imagens armazenadas no Registro de Contêiner do Azure, configure e use um segredo do Kubernetes. Uma limitação dos nós virtuais é que não se pode usar a autenticação principal do serviço Entra do Microsoft integrada. Se você não usar um segredo, os pods agendados em nós virtuais não serão iniciados e relatarão o erro HTTP response status code 400 error code "InaccessibleImage".
Teste o pod do nó virtual
Para testar o pod em execução no nó virtual, acesse o aplicativo de demonstração com um cliente web. O pod recebe um endereço IP interno, para que você possa testar facilmente a conectividade de outro pod no cluster AKS.
Crie um pod de teste e anexe uma sessão de terminal a ele usando o comando a seguir
kubectl run.kubectl run -it --rm virtual-node-test --image=mcr.microsoft.com/dotnet/runtime-deps:6.0Instale
curlno pod usando o seguinteapt-getcomando.apt-get update && apt-get install -y curlAcesse o endereço do seu pod usando o seguinte
curlcomando e forneça seu endereço IP interno.curl -L http://10.241.0.4O exemplo de saída consolidado a seguir mostra a aplicação de demonstração.
<html> <head> <title>Welcome to Azure Container Instances!</title> </head> [...]Feche a sessão do terminal para o seu pod de teste com
exit, o que também elimina o pod.exit
Próximos passos
Neste artigo, você agendou um pod no nó virtual e atribuiu um endereço IP interno privado. Se desejar, pode alternativamente implantar um serviço e rotear o tráfego para o seu pod através de um balanceador de carga ou um controlador de ingressos. Para obter mais informações, consulte Criar um controlador de entrada básico no AKS.
Os nós virtuais são um componente de uma solução de dimensionamento no AKS. Para obter mais informações sobre soluções de dimensionamento, consulte os seguintes artigos: