Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: ✔️ AKS Automatic
Azure Kubernetes Service (AKS) Automatic proporciona a experiência Kubernetes gerida mais fácil para programadores, engenheiros DevOps e engenheiros de plataforma. Ideal para aplicações modernas e de IA, o AKS Automatic automatiza a configuração e as operações do cluster AKS e incorpora as configurações de melhores práticas. Usuários de qualquer nível de habilidade podem se beneficiar da segurança, desempenho e confiabilidade do AKS Automatic para suas aplicações. O AKS Automatic inclui também um SLA de prontidão de pods que garante 99,9% de operações qualificadas de prontidão de pod concluídas em 5 minutos, garantindo uma infraestrutura fiável e auto-reparadora para as suas aplicações. Este início rápido assume que possui um entendimento básico dos conceitos do Kubernetes. Para mais informações, consulte Kubernetes conceitos centrais para Azure Kubernetes Service (AKS).
Neste guia de início rápido, você aprende a:
- Crie uma rede virtual.
- Crie uma identidade gerenciada com permissões na rede virtual.
- Implante um cluster privado do AKS Automatic na rede virtual.
- Conecte-se ao cluster privado.
- Corra uma aplicação de exemplo com vários contêineres e um conjunto de microsserviços e interfaces web simulando um cenário de retalho.
Pré-requisitos
- Se não tiver uma conta Azure, crie uma conta gratuita.
- Este artigo requer a versão 2.77.0 ou posterior da CLI do Azure. Se estiveres a usar o Azure Cloud Shell, a versão mais recente já está instalada lá. Se precisares de instalar ou atualizar, vê Install CLI do Azure.
- Identidade de cluster com uma atribuição de função incorporada na sub-rede do servidor de API.
- Identidade de cluster com uma
Network Contributoratribuição de função interna na rede virtual para dar suporte ao provisionamento automático de nós. - Identidade do utilizador a aceder o cluster com
Azure Kubernetes Service Cluster User RoleeAzure Kubernetes Service RBAC Writer. - Uma rede virtual com uma sub-rede dedicada para servidores API de dimensão de pelo menos
*/28, que é delegada aMicrosoft.ContainerService/managedClusters.- Se existir um Grupo de Segurança de Rede (NSG) ligado às sub-redes, certifique-se de que as regras permitem o seguinte tráfego entre os nós e o servidor API, o Balanceador de Carga do Azure e o servidor API, bem como comunicação pod a pod.
- Se existir um Azure Firewall ou outro método ou dispositivo de restrição de saída, certifique-se de que as regras de rede de saída exigidas e os FQDNs são permitidos.
- O AKS Automatic irá ativar a Política do Azure no seu cluster AKS, mas deve preparar o registo do fornecedor de recursos
Microsoft.PolicyInsightsna sua subscrição para uma experiência mais fluida. Consulte Azure fornecedores e tipos de recursos para mais informações.
Limitações
- O conjunto de nós do sistema dos clusters automáticos do AKS requer implantação em regiões Azure que suportem pelo menos três zonas de disponibilidade, disco do sistema operativo efémero e Azure Linux OS.
- O AKS Automatic está disponível nas seguintes regiões:
australiaeast,austriaeast,belgiumcentral,brazilsouth,canadacentral,centralindia,centralus,chilecentral,denmarkeast,eastasia,eastus,eastus2,francecentral,germanywestcentral,indonesiacentral,israelcentral,italynorth,japaneast,japanwest,koreacentral,malaysiawest,mexicocentral,newzealandnorth,northcentralus,northeurope,norwayeast,polandcentral,southafricanorth,southcentralus,southeastasia,spaincentral,swedencentral,switzerlandnorth,uaenorth,uksouth,westeurope,westus,westus2,westus3. - O cluster automático do AKS tem
pré-configurado, que não permite alterações no grupo de recursos MC_, impedindo ligações de rede virtuais na zona DNS Privada padrão. Para cenários cross-VNet ou DNS personalizados, use rede personalizada e DNS privado seguindo Crie um cluster privado Azure Kubernetes Service (AKS) Automático numa rede virtual personalizada.
Importante
AKS Automatic tenta selecionar dinamicamente um tamanho de máquina virtual para o grupo de nós system com base na capacidade disponível na assinatura. Verifique se sua assinatura tem cota para 16 vCPUs de qualquer um dos seguintes tamanhos na região em que você está implantando o cluster: Standard_D4lds_v5, Standard_D4ads_v5, Standard_D4ds_v5, Standard_D4d_v5, Standard_D4d_v4, Standard_DS3_v2, Standard_DS12_v2, Standard_D4alds_v6, Standard_D4lds_v6 ou Standard_D4alds_v5. Pode visualizar quotas para famílias VM específicas e submeter pedidos de aumento de quotas através do portal Azure.
Se você tiver dúvidas adicionais, saiba mais através dos documentos de solução de problemas.
Definir variáveis
Defina as seguintes variáveis que serão usadas nas etapas subsequentes.
RG_NAME=automatic-rg
VNET_NAME=automatic-vnet
CLUSTER_NAME=automatic
IDENTITY_NAME=automatic-uami
LOCATION=eastus
SUBSCRIPTION_ID=$(az account show --query id -o tsv)
Criar um grupo de recursos
Um grupo de recursos Azure é um grupo lógico no qual Azure recursos são implementados e geridos.
Crie um grupo de recursos usando o comando az group create .
az group create -n ${RG_NAME} -l ${LOCATION}
O exemplo de saída a seguir ilustra a criação bem-sucedida do grupo de recursos:
{
"id": "/subscriptions/<guid>/resourceGroups/automatic-rg",
"location": "eastus",
"managedBy": null,
"name": "automatic-rg",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Criar uma rede virtual
Crie uma rede virtual usando o az network vnet create comando. Crie uma sub-rede de servidor de API e uma sub-rede de cluster usando o az network vnet subnet create comando.
Ao usar uma rede virtual personalizada com AKS Automatic, deve criar e delegar uma sub-rede de servidor API a Microsoft.ContainerService/managedClusters, que concede permissões ao serviço AKS para injetar os pods do servidor API e o balanceador de carga interno nessa subrede. Você não pode usar a sub-rede para outras cargas de trabalho, mas pode usá-la para vários clusters AKS localizados na mesma rede virtual. O tamanho mínimo suportado da sub-rede do servidor API é / 28.
Advertência
Um cluster AKS reserva pelo menos 9 IPs no espaço de endereço da sub-rede. A falta de endereços IP pode impedir o dimensionamento do servidor de API e causar uma interrupção do servidor de API.
az network vnet create --name ${VNET_NAME} \
--resource-group ${RG_NAME} \
--location ${LOCATION} \
--address-prefixes 172.19.0.0/16
az network vnet subnet create --resource-group ${RG_NAME} \
--vnet-name ${VNET_NAME} \
--name apiServerSubnet \
--delegations Microsoft.ContainerService/managedClusters \
--address-prefixes 172.19.0.0/28
az network vnet subnet create --resource-group ${RG_NAME} \
--vnet-name ${VNET_NAME} \
--name clusterSubnet \
--address-prefixes 172.19.1.0/24
Regras do grupo de segurança de rede
Todo o tráfego dentro da rede virtual é permitido por padrão. Mas se você adicionou regras do NSG (Grupo de Segurança de Rede) para restringir o tráfego entre sub-redes diferentes, certifique-se de que as regras de segurança do NSG permitam os seguintes tipos de comunicação:
| Destino | Fonte | Protocolo | Porto | Utilização |
|---|---|---|---|---|
| APIServer Sub-Rede CIDR | Sub-rede do cluster | TCP | 443 e 4443 | Necessário para habilitar a comunicação entre nós e o servidor de API. |
| APIServer Sub-Rede CIDR | Balanceador de Carga do Azure (Equilibrador de Carga do Azure) | TCP | 9988 | Necessário para permitir a comunicação entre o Balanceador de Carga do Azure e o servidor API. Também pode ativar toda a comunicação entre o Balanceador de Carga do Azure e o API Server Subnet CIDR. |
| Nó CIDR | Nó CIDR | Todos os Protocolos | Todos os Portos | Necessário para permitir a comunicação entre nós. |
| Nó CIDR | Pod CIDR | Todos os Protocolos | Todos os Portos | Necessário para roteamento de tráfego de serviço. |
| Pod CIDR | Pod CIDR | Todos os Protocolos | Todos os Portos | Necessário para o tráfego de Pod to Pod e Pod to Service, incluindo DNS. |
Criar uma identidade gerenciada e dar-lhe permissões na rede virtual
Crie uma identidade gerenciada usando o az identity create comando e recupere o ID principal. Atribua a função de Colaborador de Rede na rede virtual à identidade gerenciada usando o az role assignment create comando.
az identity create \
--resource-group ${RG_NAME} \
--name ${IDENTITY_NAME} \
--location ${LOCATION}
IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group ${RG_NAME} --name ${IDENTITY_NAME} --query principalId -o tsv)
az role assignment create \
--scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}" \
--role "Network Contributor" \
--assignee ${IDENTITY_PRINCIPAL_ID}
Criar um cluster privado do AKS Automatic em uma rede virtual personalizada
Para criar um cluster privado do AKS Automatic, use o comando az aks create . Observe o uso da --enable-private-cluster bandeira.
Observação
Você pode consultar a documentação do cluster privado para configurar opções adicionais, como desabilitar o FQDN público do cluster e configurar a zona DNS privada.
az aks create \
--resource-group ${RG_NAME} \
--name ${CLUSTER_NAME} \
--location ${LOCATION} \
--apiserver-subnet-id "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}/subnets/apiServerSubnet" \
--vnet-subnet-id "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}/subnets/clusterSubnet" \
--assign-identity "/subscriptions/${SUBSCRIPTION_ID}/resourcegroups/${RG_NAME}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/${IDENTITY_NAME}" \
--sku automatic \
--enable-private-cluster \
--no-ssh-key
Após alguns minutos, o comando conclui e retorna informações formatadas em JSON sobre o cluster.
Conectar-se ao cluster
Quando um cluster AKS Automatic é criado como um cluster privado, o ponto de extremidade do servidor API não tem endereço IP público. Para gerir o servidor API, por exemplo via kubectl, é necessário ligar-se através de uma máquina que tenha acesso à rede virtual Azure do cluster. Existem várias opções para estabelecer conectividade de rede com o cluster privado:
- Crie uma máquina virtual na mesma rede virtual que o cluster AKS Automatic usando o
az vm createcomando com o--vnet-namesinalizador. - Use uma máquina virtual em uma rede virtual separada e configure o emparelhamento de rede virtual.
- Use uma Rota Expressa ou uma conexão VPN.
- Utilize uma conexão de ponto de extremidade privado.
Criar uma máquina virtual na mesma rede virtual que o cluster AKS é a opção mais fácil. ExpressRoute e VPNs adicionam custos e exigem complexidade de rede adicional. O emparelhamento de rede virtual requer que você planeje seus intervalos CIDR de rede para garantir que não haja intervalos sobrepostos. Consulte Opções para se conectar ao cluster privado para obter mais informações.
Para gerenciar um cluster Kubernetes, use o cliente de linha de comando Kubernetes, kubectl.
kubectl já está instalado se usares Azure Cloud Shell. Para instalar kubectl localmente, execute o comando az aks install-cli . Os clusters automáticos do AKS estão configurados com Microsoft Entra ID para controlo de acesso por funções (RBAC) do Kubernetes.
Quando crias um cluster usando o CLI do Azure, o teu utilizador é atribuído papéis incorporados para Azure Kubernetes Service RBAC Cluster Admin.
Configure kubectl para se conectar ao cluster Kubernetes usando o comando az aks get-credentials. Este comando baixa credenciais e configura a CLI do Kubernetes para usá-las.
az aks get-credentials --resource-group ${RG_NAME} --name ${CLUSTER_NAME}
Verifique a conexão com seu cluster usando o comando kubectl get . Este comando retorna uma lista dos nós do cluster.
kubectl get nodes
A saída de exemplo a seguir mostra como você é solicitado a fazer login.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Depois de fazer login, a saída de exemplo a seguir mostra os pools de nós do sistema gerenciado. Verifique se o status do nó é Pronto.
NAME STATUS ROLES AGE VERSION
aks-nodepool1-13213685-vmss000000 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000001 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000002 Ready agent 2m26s v1.28.5
Criar uma rede virtual
Este ficheiro Bicep define uma rede virtual.
@description('The location of the managed cluster resource.')
param location string = resourceGroup().location
@description('The name of the virtual network.')
param vnetName string = 'aksAutomaticVnet'
@description('The address prefix of the virtual network.')
param addressPrefix string = '172.19.0.0/16'
@description('The name of the API server subnet.')
param apiServerSubnetName string = 'apiServerSubnet'
@description('The subnet prefix of the API server subnet.')
param apiServerSubnetPrefix string = '172.19.0.0/28'
@description('The name of the cluster subnet.')
param clusterSubnetName string = 'clusterSubnet'
@description('The subnet prefix of the cluster subnet.')
param clusterSubnetPrefix string = '172.19.1.0/24'
// Virtual network with an API server subnet and a cluster subnet
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-09-01' = {
name: vnetName
location: location
properties: {
addressSpace: {
addressPrefixes: [ addressPrefix ]
}
subnets: [
{
name: apiServerSubnetName
properties: {
addressPrefix: apiServerSubnetPrefix
}
}
{
name: clusterSubnetName
properties: {
addressPrefix: clusterSubnetPrefix
}
}
]
}
}
output apiServerSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnetName, apiServerSubnetName)
output clusterSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnetName, clusterSubnetName)
Guarde o ficheiro Bicep virtualNetwork.bicep para o seu computador local.
Importante
O ficheiro Bicep define o parâmetro vnetName para aksAutomaticVnet, o parâmetro addressPrefix para 172.19.0.0/16, o parâmetro apiServerSubnetPrefix para 172.19.0.0/28, e o parâmetro apiServerSubnetPrefix para 172.19.1.0/24. Se você quiser usar valores diferentes, certifique-se de atualizar as cadeias de caracteres para seus valores preferidos.
Implemente o ficheiro Bicep usando a CLI do Azure.
az deployment group create --resource-group <resource-group> --template-file virtualNetwork.bicep
Todo o tráfego dentro da rede virtual é permitido por padrão. Mas se você adicionou regras do NSG (Grupo de Segurança de Rede) para restringir o tráfego entre sub-redes diferentes, certifique-se de que as regras de segurança do NSG permitam os seguintes tipos de comunicação:
| Destino | Fonte | Protocolo | Porto | Utilização |
|---|---|---|---|---|
| APIServer Sub-Rede CIDR | Sub-rede do cluster | TCP | 443 e 4443 | Necessário para habilitar a comunicação entre nós e o servidor de API. |
| APIServer Sub-Rede CIDR | Balanceador de Carga do Azure (Equilibrador de Carga do Azure) | TCP | 9988 | Necessário para permitir a comunicação entre o Balanceador de Carga do Azure e o servidor API. Também pode ativar toda a comunicação entre o Balanceador de Carga do Azure e o API Server Subnet CIDR. |
Criar uma identidade gerenciada
Este ficheiro Bicep define uma identidade gerida atribuída pelo próprio utilizador.
param location string = resourceGroup().location
param uamiName string = 'aksAutomaticUAMI'
resource userAssignedManagedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = {
name: uamiName
location: location
}
output uamiId string = userAssignedManagedIdentity.id
output uamiPrincipalId string = userAssignedManagedIdentity.properties.principalId
output uamiClientId string = userAssignedManagedIdentity.properties.clientId
Guardar o ficheiro Bicep uami.bicep para o seu computador local.
Importante
O ficheiro Bicep define o param uamiName para aksAutomaticUAMI. Se você quiser usar um nome de identidade diferente, atualize a cadeia de caracteres para seu nome preferido.
Implemente o ficheiro Bicep usando a CLI do Azure.
az deployment group create --resource-group <resource-group> --template-file uami.bicep
Atribuir a função de Colaborador de Rede sobre a rede virtual
Este ficheiro Bicep define atribuições de funções na rede virtual.
@description('The name of the virtual network.')
param vnetName string = 'aksAutomaticVnet'
@description('The principal ID of the user assigned managed identity.')
param uamiPrincipalId string
// Get a reference to the virtual network
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-09-01' existing ={
name: vnetName
}
// Assign the Network Contributor role to the user assigned managed identity on the virtual network
// '4d97b98b-1d4f-4787-a291-c67834d212e7' is the built-in Network Contributor role definition
// See: https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles/networking#network-contributor
resource networkContributorRoleAssignmentToVirtualNetwork 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(uamiPrincipalId, '4d97b98b-1d4f-4787-a291-c67834d212e7', resourceGroup().id, virtualNetwork.name)
scope: virtualNetwork
properties: {
roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', '4d97b98b-1d4f-4787-a291-c67834d212e7')
principalId: uamiPrincipalId
}
}
Guardar o ficheiro Bicep roleAssignments.bicep para o seu computador local.
Importante
O ficheiro Bicep define o param vnetName para aksAutomaticVnet. Se você usou um nome de rede virtual diferente, certifique-se de atualizar a cadeia de caracteres para seu nome de rede virtual preferido.
Implemente o ficheiro Bicep usando a CLI do Azure. Você precisa fornecer o ID principal de identidade atribuído ao usuário.
az deployment group create --resource-group <resource-group> --template-file roleAssignments.bicep \
--parameters uamiPrincipalId=<user assigned identity prinicipal id>
Criar um cluster privado do AKS Automatic em uma rede virtual personalizada
Este ficheiro Bicep define o cluster automático do AKS.
Observação
Você pode consultar a documentação do cluster privado para configurar opções adicionais, como desabilitar o FQDN público de clusters e configurar a zona DNS privada.
@description('The name of the managed cluster resource.')
param clusterName string = 'aksAutomaticCluster'
@description('The location of the managed cluster resource.')
param location string = resourceGroup().location
@description('The resource ID of the API server subnet.')
param apiServerSubnetId string
@description('The resource ID of the cluster subnet.')
param clusterSubnetId string
@description('The resource ID of the user assigned managed identity.')
param uamiId string
/// Create the private AKS Automatic cluster using the custom virtual network and user assigned managed identity
resource aks 'Microsoft.ContainerService/managedClusters@2024-03-02-preview' = {
name: clusterName
location: location
sku: {
name: 'Automatic'
}
properties: {
agentPoolProfiles: [
{
name: 'systempool'
mode: 'System'
count: 3
vnetSubnetID: clusterSubnetId
}
]
apiServerAccessProfile: {
subnetId: apiServerSubnetId
enablePrivateCluster: true
}
networkProfile: {
outboundType: 'loadBalancer'
}
}
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${uamiId}': {}
}
}
}
Guardar o ficheiro Bicep aks.bicep para o seu computador local.
Importante
O ficheiro Bicep define o param clusterName para aksAutomaticCluster. Se você quiser um nome de cluster diferente, atualize a cadeia de caracteres para o nome do cluster de sua preferência.
Implemente o ficheiro Bicep usando a CLI do Azure. Você precisa fornecer a ID do recurso da sub-rede do servidor API, a ID do recurso da sub-rede do cluster, e a ID principal da identidade atribuída ao utilizador.
az deployment group create --resource-group <resource-group> --template-file aks.bicep \
--parameters apiServerSubnetId=<API server subnet resource id> \
--parameters clusterSubnetId=<cluster subnet resource id> \
--parameters uamiPrincipalId=<user assigned identity prinicipal id>
Conectar-se ao cluster
Quando um cluster AKS Automatic é criado como um cluster privado, o ponto de extremidade do servidor API não tem endereço IP público. Para gerir o servidor API, por exemplo via kubectl, é necessário ligar-se através de uma máquina que tenha acesso à rede virtual Azure do cluster. Existem várias opções para estabelecer conectividade de rede com o cluster privado:
- Crie uma máquina virtual na mesma rede virtual que o cluster AKS Automatic usando o
az vm createcomando com o--vnet-namesinalizador. - Use uma máquina virtual em uma rede virtual separada e configure o emparelhamento de rede virtual.
- Use uma Rota Expressa ou uma conexão VPN.
- Utilize uma conexão de ponto de extremidade privado.
Criar uma máquina virtual na mesma rede virtual que o cluster AKS é a opção mais fácil. A Rota Expressa e as VPNs adicionam custos e exigem complexidade de rede adicional. O emparelhamento de rede virtual requer que você planeje seus intervalos CIDR de rede para garantir que não haja intervalos sobrepostos. Consulte Opções para se conectar ao cluster privado para obter mais informações.
Para gerenciar um cluster Kubernetes, use o cliente de linha de comando Kubernetes, kubectl.
kubectl já está instalado se usares Azure Cloud Shell. Para instalar kubectl localmente, execute o comando az aks install-cli . Os clusters automáticos do AKS estão configurados com Microsoft Entra ID para controlo de acesso por funções (RBAC) do Kubernetes.
Importante
Quando crias um cluster usando Bicep, precisas de atribuir um dos papéis incorporados como Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writer, Azure Kubernetes Service RBAC Admin ou Azure Kubernetes Service RBAC Cluster Admin aos teus utilizadores, com o âmbito do cluster ou de um namespace específico, por exemplo usando az role assignment create --role "Azure Kubernetes Service RBAC Cluster Admin" --scope <AKS cluster resource id> --assignee user@contoso.com. Também certifica-te de que os teus utilizadores têm o papel incorporado Azure Kubernetes Service Cluster User para poderem executar az aks get-credentials, e depois obter o kubeconfig do teu cluster AKS usando o comando az aks get-credentials.
Configure kubectl para se conectar ao cluster Kubernetes usando o comando az aks get-credentials. Este comando baixa credenciais e configura a CLI do Kubernetes para usá-las.
az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Verifique a conexão com seu cluster usando o comando kubectl get . Este comando retorna uma lista dos nós do cluster.
kubectl get nodes
A saída de exemplo a seguir mostra como você é solicitado a fazer login.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Depois de fazer login, a saída de exemplo a seguir mostra os pools de nós do sistema gerenciado. Verifique se o status do nó é Pronto.
NAME STATUS ROLES AGE VERSION
aks-nodepool1-13213685-vmss000000 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000001 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000002 Ready agent 2m26s v1.28.5
Implantar o aplicativo
Para implementar a aplicação, utiliza-se um ficheiro manifesto para criar todos os objetos necessários para executar a aplicação AKS Store. Um arquivo de manifesto do Kubernetes define o estado desejado de um cluster, como quais imagens de contêiner devem ser executadas. O manifesto inclui as seguintes implantações e serviços do Kubernetes:
- Vitrine: aplicativo Web para que os clientes visualizem produtos e façam pedidos.
- Serviço do produto: Mostra as informações do produto.
- Serviço de pedidos: Faz pedidos.
- Rabbit MQ: Fila de mensagens para processamento de pedidos.
Observação
Não recomendamos a execução de contentores com estado, como Rabbit MQ, sem armazenamento persistente para produção. Estes contentores são usados aqui para simplificar, mas recomendamos o uso de serviços geridos, como o Azure Cosmos DB ou o Azure Service Bus.
Crie um namespace
aks-store-demopara implantar os recursos do Kubernetes.kubectl create ns aks-store-demoImplante o aplicativo usando o comando kubectl apply no
aks-store-demonamespace. O ficheiro YAML que define a implementação está em GitHub.kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yamlO exemplo seguinte mostra as implementações e os serviços:
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created ingress/store-front created
Testar a aplicação
Quando o aplicativo é executado, um serviço Kubernetes expõe o front-end do aplicativo à Internet. Este processo pode demorar alguns minutos a concluir.
Verifique o status dos pods implantados usando o comando kubectl get pods . Certifique-se de que todos os pods estejam
Runningantes de prosseguir. Se esta for a primeira tarefa que você implanta, pode levar alguns minutos para que o provisionamento automático de nós crie um cluster de nós para executar os pods.kubectl get pods -n aks-store-demoVerifique se há um endereço IP público para a aplicação de loja. Monitore o progresso utilizando o comando kubectl get service com o argumento
--watch.kubectl get ingress store-front -n aks-store-demo --watchA saída ADDRESS para o
store-frontserviço inicialmente mostra vazio:NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 80 12mQuando o ENDEREÇO mudar de um estado em branco para um endereço IP público real, use
CTRL-Cpara parar o processo dekubectlmonitorização.A saída de exemplo a seguir mostra um endereço IP público válido atribuído ao serviço:
NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 4.255.22.196 80 12mAbra um navegador web no endereço IP externo do seu acesso para ver a aplicação Azure Store em ação.
Eliminar o cluster
Se não planeias seguir o tutorial AKS, elimina recursos desnecessários para evitar encargos do Azure. Execute o comando az group delete para remover o grupo de recursos, o serviço de contêiner e todos os recursos relacionados.
az group delete --name <resource-group> --yes --no-wait
Observação
O cluster AKS foi criado com uma identidade gerenciada atribuída pelo usuário. Se já não precisar dessa identidade, pode removê-la manualmente.
Próximos passos
Neste início rápido, você implantou um cluster Kubernetes privado usando o AKS Automatic dentro de uma rede virtual personalizada e, em seguida, implantou um aplicativo simples de vários contêineres nele. Este aplicativo de exemplo é apenas para fins de demonstração e não representa todas as práticas recomendadas para aplicativos Kubernetes. Para obter orientação sobre como criar soluções completas com o AKS para produção, consulte Orientação de solução AKS.
Para saber mais sobre o AKS Automatic, continue para a introdução.