Se você estiver trabalhando com aplicativos em contêineres e quiser escalar facilmente usando o Kubernetes no Azure, o Azure Kubernetes Service (AKS) combinado com o Bicep fornece uma maneira moderna, segura e reproduzível de gerenciar a infraestrutura.
Neste artigo, mostraremos como criar um cluster AKS e um Registro de Contêiner do Azure (ACR) usando o Bicep e como implantar seu aplicativo.
✅ Pré-requisitos
Certifique-se de ter as seguintes ferramentas instaladas:
-
VS Code com as extensões:
-
Bíceps (para destaque de sintaxe e intellisense)
-
Ferramentas da CLI do Azure
-
Kubernetes (para edição de manifesto e integração com o AKS)
-
🏠 1. Prepare o ambiente
Efetue login no Azure e instale o Bicep CLI, se necessário:
az login
az bicep install
📁 2. Estrutura do arquivo
infra/
├── main.bicep
├── parameters.json (optional)
📄 3. Arquivo main.bicep
Este arquivo define os recursos a serem criados: um ACR, um cluster AKS e uma atribuição de função para que o cluster AKS possa extrair imagens do ACR.
@description('Resource location')
param location string = 'westeurope'
@description('Nome do grupo de recursos')
parâmetro resourceGroupName string = 'rg-my-aks'
@description('Nome do cluster AKS')
param aksName string = 'myAKSCluster'
@description('Nome do ACR')
param acrName string = 'myContainerRegistry'
recurso acr 'Microsoft.ContainerRegistry/registries@2023-01-01-preview' = {
nome: acrNome
localização: localização
código SKU: {
nome: 'Básico'
}
propriedades: {
adminUserEnabled: verdadeiro
}
}
recurso aks 'Microsoft.ContainerService/managedClusters@2023-01-01' = {
nome: aksName
localização: localização
identidade: {
tipo: 'SystemAssigned'
}
propriedades: {
dnsPrefix: '\${aksName}-dns'
agentPoolProfiles: [
{
nome: 'nodepool1'
contagem: 2
vmSize: 'Standard_DS2_v2'
modo: 'Sistema'
osType: 'Linux'
tipo: 'VirtualMachineScaleSets'
}
]
Perfil Linux: {
Nome de usuário do administrador: 'azureuser'
ssh: {
Chaves públicas: [
{
keyData: 'ssh-rsa AAAA... sua chave SSH ...'
}
]
}
}
perfil de rede: {
Plugin de rede: 'azure'
}
Perfis de complemento: {}
enableRBAC: verdadeiro
aadProfile: {
gerenciado: verdadeiro
}
}
}
função de recursoAtribuição 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = {
nome: guid(aks.id, 'acrpull')
escopo: acr
propriedades: {
roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '7f951dda-4ed3-4680-a7ca-43fe172d538d') // AcrPull
principalId: aks.identity.principalId
principalType: 'ServicePrincipal'
}
}
🚀 4. Implantar com o Azure CLI
az deployment sub create \
--location westeurope \
--template-file infra/main.bicep \
--parameters resourceGroupName=rg-my-aks \
aksName=myAKSCluster \
acrName=myContainerRegistry
📦 5. Implante seu aplicativo
Após a implantação da infraestrutura:
-
Crie e envie sua imagem para o ACR:
docker build -t myapp:v1 .
tag docker myapp:v1 mycontainerregistry.azurecr.io/myapp:v1
docker push mycontainerregistry.azurecr.io/myapp:v1
-
Obtenha as credenciais do cluster AKS:
az aks get-credentials --resource-group rg-my-aks --name myAKSCluster
-
Crie manifestos do Kubernetes (deployment.yaml + service.yaml) e aplique-os:
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
-
Obtenha o endereço IP público:
kubectl get service
🔧 Automação
Você pode integrar toda essa configuração com o GitHub Actions ou o Azure DevOps para CI/CD completo. Entre em contato se precisar de ajuda para configurar isso.
Com o Bicep, você pode gerenciar a infraestrutura de forma declarativa e segura. Isso é especialmente útil para equipes que buscam consistência nos ambientes de desenvolvimento, preparação e produção.
Fique ligado para a próxima postagem sobre CI/CD com GitHub Actions para AKS!