Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A otimização de custos é sobre maximizar o valor dos recursos, minimizando despesas desnecessárias em seu ambiente de nuvem. Esse processo envolve a identificação de opções de configuração econômicas e a implementação de práticas recomendadas para melhorar a eficiência operacional. Um ambiente do AKS pode ser otimizado para minimizar o custo, levando em conta os requisitos de desempenho e confiabilidade.
Neste artigo, você aprenderá sobre:
- Começando com o AKS Automatic para otimização de custo interna.
- Práticas holísticas de monitoramento e FinOps.
- Seleção de infraestrutura estratégica.
- Correção dinâmica de tamanho e dimensionamento automático.
- Aproveitamento de descontos do Azure para ter uma economia substancial.
Começar com o AKS Automatic para otimização de custo interna
O AKS Automatic é um modo de cluster que pré-configura muitas das práticas de otimização de custo descritas neste artigo. Se você estiver criando um novo cluster, considere o AKS Automatic para reduzir o esforço de engenharia, o risco de configuração e a sobrecarga operacional contínua que leva a gastos desnecessários na nuvem.
O AKS Automatic fornece os seguintes recursos de otimização de custo por padrão, sem nenhuma configuração extra:
| Capacidade | Benefício de custo |
|---|---|
| Provisionamento automático de nós (NAP) | Seleciona automaticamente a SKU de VM mais econômica para cada carga de trabalho com base nas solicitações reais de recursos dos pods. Elimina o gerenciamento de pools de nós manual e o superprovisionamento. |
| Dimensionamento automático de carga de trabalho (VPA, HPA e KEDA) | Todos os dimensionadores automáticos da carga de trabalho permanecem habilitados por padrão, logo, pods e nós são dimensionados dinamicamente para a demanda real, em vez de pressuposições de pico. |
| Empacotamento eficiente em recipientes | Os pods são agendados para maximizar a utilização de nós, reduzindo o número total de nós necessários para atender às cargas de trabalho. |
| Prometheus Gerenciado | O Prometheus gerenciado é a plataforma de métricas padrão. Você evita o custo mais alto das métricas do Container Insights sem nenhum esforço de migração. |
| Proteções de implantação | Os controles do Azure Policy impõem solicitações e limites de recursos a todos os pods no modo de imposição, evitando o consumo descontrolado de recursos e o superprovisionamento no nível do cluster. |
Para cargas de trabalho que exigem o AKS Standard, o restante deste artigo descreve cada uma dessas práticas e como configurá-las manualmente. Quando o AKS Automatic fornece uma prática por padrão, uma observação indica que nenhuma etapa extra é necessária.
Adotar FinOps para criar uma cultura de economia de custos
FinOps (operações financeiras) é uma disciplina que combina responsabilidade financeira com gerenciamento e otimização de nuvem. Ela se concentra em impulsionar o alinhamento entre as equipes de finanças, operações e engenharia para entender e controlar os custos de nuvem. A fundação FinOps tem vários projetos notáveis, como o FinOps Framework e a Especificação FOCUS.
Para obter mais informações, consulte O que é FinOps?
Selecione a infraestrutura econômica e a configuração do cluster
Avaliar a família do SKU
Observação
Se você usar o AKS Automatic, o NAP (provisionamento automático de nós) selecionará automaticamente a SKU de VM mais econômica para cada carga de trabalho com base em suas solicitações de recurso. Você não precisa avaliar, criar ou gerenciar manualmente pools de nós.
É importante avaliar os requisitos de recursos do seu aplicativo antes da implantação. Pequenas cargas de trabalho de desenvolvimento têm necessidades de infraestrutura diferentes das grandes cargas de trabalho prontas para produção. Embora uma combinação de configurações de CPU, memória e capacidade de rede influencie fortemente o custo-benefício de um SKU, considere os seguintes tipos de VM (máquinas virtuais):
| Família do SKU | Descrição | Melhor para |
|---|---|---|
| Máquinas Virtuais de Spot do Azure | Os conjuntos de dimensionamento de máquinas virtuais Spot do Azure dão suporte a pools de nós spot e são implantados em um único domínio de falha, sem garantias de alta disponibilidade ou de contrato de nível de serviço (SLA). As VMs spot permitem que você aproveite a capacidade de Azure não utilizada com descontos significativos (até 90% em comparação com os preços de pagamento conforme o uso). Se o Azure precisar de capacidade de volta, a infraestrutura do Azure removerá os nós Spot. | Ambientes de desenvolvimento/teste, cargas de trabalho que podem lidar com interrupções como trabalhos de processamento em lote e cargas de trabalho com tempo de execução flexível. |
| Processadores baseados em Arm (Arm64) | As VMs arm64 são eficientes e econômicas sem comprometer o desempenho. Com suporte ao pool de nós do Arm64 em AKS, você pode criar nós de agente do Ubuntu arm64 e misturar nós de arquitetura Intel e Arm dentro de um cluster. Essas VMs são projetadas para executar cargas de trabalho dinâmicas e escalonáveis com eficiência e podem fornecer até 50% melhor desempenho de preço do que VMs baseadas em x86 comparáveis para cargas de trabalho de expansão. | Servidores Web ou de aplicativos, bancos de dados de software livre, aplicativos nativos de nuvem, servidores de jogos e muito mais. |
| SKUs otimizados para GPU | Dependendo da natureza da carga de trabalho, considere o uso de SKUs de VM otimizadas para computação, com otimização de memória, otimizadas para armazenamento ou com otimização de GPU. Os tamanhos de VM da GPU são VMs especializadas disponíveis com GPUs individuais, múltiplas e fracionárias. | Os pools de nós do Linux habilitados para GPU no AKS são melhores para cargas de trabalho com uso intensivo de computação, como renderização de gráficos, treinamento de modelos grandes e inferência. |
Observação
O custo da computação varia entre diferentes regiões. Ao escolher uma região menos cara para executar cargas de trabalho, lembre-se do impacto potencial da latência, bem como dos custos de transferência de dados. Para saber mais sobre SKUs de VM e as características deles, consulte Tamanhos para máquinas virtuais no Azure.
Examinar as opções de armazenamento
Para obter mais informações sobre as opções de armazenamento e as considerações sobre custo relacionadas, confira os seguintes artigos:
- Práticas recomendadas para armazenamento e backups no Serviço de Kubernetes do Azure (AKS)
- Opções de armazenamento para aplicativos no Serviço de Kubernetes do Azure (AKS)
Usar configurações predefinidas do cluster
Pode ser difícil acertar na escolha da SKU de VM, das regiões, do número de nós e das outras opções de configuração. Configurações predefinidas de cluster no portal do Azure aliviam esse desafio inicial, fornecendo configurações recomendadas para diferentes ambientes de aplicação com bom custo-benefício e bom desempenho. A predefinição Dev/Test é melhor para desenvolver novas cargas de trabalho ou testar cargas de trabalho existentes. A predefinição Economia de Produção é melhor para atender ao tráfego de produção de maneira consciente de custos se suas cargas de trabalho puderem tolerar interrupções. Os recursos não críticos estão desativados por padrão e você pode modificar os valores predefinidos a qualquer momento.
Para obter uma abordagem mais abrangente que vá além das predefinições estáticas, considere o AKS Automatic. O AKS Automatic gerencia os pools de nós usando o provisionamento automático de nós (NAP), que dimensiona continuamente a infraestrutura às demandas reais das cargas de trabalho. Ele também habilita todos os dimensionadores automáticos de carga de trabalho por padrão e impõe a governança de recursos por meio de proteções de implantação, que são benefícios extras que as predefinições de cluster não fornecem.
Considerar a multilocação
O AKS oferece flexibilidade na forma como você executa clusters multilocatários e isola recursos. Para uma arquitetura multilocatário de uso amigável, compartilhe os clusters e a infraestrutura entre equipes e unidades de negócios por meio do isolamento lógico. Os namespaces do Kubernetes formam o limite de isolamento lógico para cargas de trabalho e recursos. A infraestrutura de compartilhamento reduz a sobrecarga de gerenciamento de cluster, ao mesmo tempo em que aprimora a utilização de recursos e a densidade do pod dentro do cluster. Para saber mais sobre arquitetura multilocatário no AKS e determinar se ela é adequada para suas necessidades organizacionais, consulte Considerações do AKS para arquitetura multilocatário e Projetar clusters para multilocatário.
Aviso
Os ambientes do Kubernetes não são completamente seguros para arquitetura multilocatário hostil. Se algum locatário na infraestrutura compartilhada não for confiável, será necessário mais planejamento para impedir que os locatários afetem a segurança de outros serviços.
Considere estabelecer limites de isolamento físico. Neste modelo, as equipes ou cargas de trabalho são atribuídas ao cluster delas. A sobrecarga adicionada de gerenciamento e financeira é uma contrapartida.
Reduzir o desperdício de recursos por meio da configuração do aplicativo e do cluster
Torne o seu contêiner o mais enxuto possível
Um contêiner enxuto refere-se à otimização do tamanho e do volume de recursos do aplicativo conteinerizado. Verifique se a imagem base é mínima e contém apenas as dependências necessárias. Remova quaisquer bibliotecas e pacotes desnecessários. Uma imagem de contêiner menor acelera os tempos de implantação e aumenta a eficiência das operações de dimensionamento. Artifact Streaming no AKS permite transmitir imagens de contêiner do Registro de Contêiner do Azure (ACR). Ele efetua pull apenas da camada necessária para a inicialização inicial do pod, reduzindo de minutos para segundos o tempo de pull para imagens maiores.
Impor cotas de recursos
Observação
Os clusters do AKS Automatic impõem automaticamente solicitações e limites de recursos a todos os pods por meio de implantações de medidas de segurança, habilitadas por padrão em modo de imposição. Isso impede o consumo de recursos descontrolado e o excesso de provisionamento sem a necessidade de configuração de política manual. Para clusters padrão do AKS, configure cotas de recursos no nível do namespace, conforme descrito nesta seção.
As cotas de recursos fornecem uma maneira para reservar e limitar os recursos em uma equipe de desenvolvimento ou um projeto. As cotas são definidas em um namespace e podem ser definidas em recursos de computação, recursos de armazenamento e contagens de objetos. Quando você define cotas de recursos, namespaces individuais são impedidos de consumir mais recursos do que alocados. As cotas de recursos são úteis para clusters multilocatário em que as equipes compartilham a infraestrutura.
Usar a parada e a inicialização de cluster
Quando deixados autônomos, pequenos clusters de desenvolvimento e teste podem acumular custos desnecessários. Você pode desabilitar os clusters que não precisam ser executados o tempo todo usando o recurso de parada e inicialização de cluster. Esse recurso desliga todos os pools de nós do sistema e do usuário para que você não pague pela computação extra. O estado do cluster e dos objetos é mantido quando você inicia o cluster novamente.
Usar reservas de capacidade
As reservas de capacidade permitem reservar capacidade de computação em uma região Azure ou zona de disponibilidade por qualquer período de tempo. A capacidade reservada fica disponível para uso imediato até que a reserva seja excluída. A associação de um grupo de reserva de capacidade existente a um pool de nós garante a capacidade alocada para o seu pool de nós e ajuda a evitar possíveis picos de preços sob demanda durante períodos de alta demanda de computação.
Monitorar seu ambiente e gasto
Aumentar a visibilidade com o Gerenciamento de Custos da Microsoft
O Gerenciamento de Custos da Microsoft oferece um amplo conjunto de recursos para ajudar no orçamento, previsão e visibilidade da nuvem para os custos dentro e fora do cluster. Uma visibilidade adequada é essencial para decifrar tendências de gastos, identificar oportunidades de otimização e aumentar a responsabilidade entre desenvolvedores de aplicativos e equipes de plataforma. Habilite o complemento da Análise de Custo do AKS para detalhamento de custo de cluster granular por constructos do Kubernetes, juntamente com as categorias de Computação, Rede e Armazenamento do Azure.
Azure Monitor
Observação
Os clusters AKS Automatic usam o Prometheus gerenciado como a plataforma padrão de métricas. As métricas do Container Insights não estão habilitadas por padrão. Se você usar o AKS Automatic, essa otimização de custo já estará em vigor e nenhuma etapa de migração será necessária.
Se você estiver ingerindo dados de métricas por meio de insights de contêiner, recomendamos a migração para o Prometheus gerenciado, que oferece uma redução significativa de custos. Você pode desabilitar as métricas de insights de contêiner usando a DCR (regra de coleta de dados) e implantar o complemento do Prometheus gerenciado, que dá suporte à configuração por meio do Azure Resource Manager, da CLI do Azure, do portal do Azure e do Terraform.
Para obter mais informações, confira Melhores práticas do Azure Monitor e gerenciamento de custos para insights de contêiner.
Análise de Logs
Para os logs do painel de controle, considere a desabilitação das categorias de que você não precisa e/ou o uso da API de Logs Básicos quando aplicável para reduzir os custos do Log Analytics. Para obter mais informações, confira o painel de controle/logs de recursos do AKS (Serviço de Kubernetes do Azure). No caso de logs do plano de dados ou logs de aplicativo, considere o ajuste das configurações da otimização de custo.
Você também pode usar Transformações no Azure Monitor para filtrar ou modificar os logs do plano de controle e do plano de dados antes que eles sejam enviados para um espaço de trabalho do Log Analytics. Para obter mais informações sobre como criar uma transformação, consulte Criar uma transformação no Azure Monitor.
Recomendações de custo do Assistente do Azure
As recomendações de custo do AKS no Assistente do Azure fornecem recomendações para ajudá-lo a obter eficiência de custo sem sacrificar a confiabilidade. O Assistente analisa suas configurações de recursos e recomenda soluções de otimização. Para obter mais informações, consulte Obter recomendações de custo do AKS (Serviço de Kubernetes do Azure) no Assistente do Azure.
Otimizar cargas de trabalho por meio do dimensionamento automático
Estabelecer uma linha de base
Antes de definir as configurações de dimensionamento automático, você poderá usar o Teste de Carga do Azure para estabelecer uma linha de base para seu aplicativo. O teste de carga ajuda você a entender como seu aplicativo se comporta em diferentes condições de tráfego e a identificar os gargalos de desempenho. Depois de ter uma linha de base, você poderá definir as configurações de dimensionamento automático para garantir que o aplicativo possa lidar com a carga esperada.
Habilitar o dimensionamento automático do aplicativo
Dimensionamento automático de pod vertical
Observação
Os clusters automáticos do AKS têm a VPA habilitada por padrão. Se você usar o AKS Standard, consulte Usar o autoscaler vertical de pods no AKS (Serviço de Kubernetes do Azure) para habilitar e configurar o VPA.
Solicitações e limites maiores do que o uso real podem resultar em cargas de trabalho superprovisionadas e no desperdício de recursos. Por outro lado, solicitações e limites muito baixos podem resultar em problemas de limitação e carga de trabalho devido à falta de memória. O VPA (Dimensionador Automático de Pod Vertical) permite ajustar os recursos de CPU e memória exigidos pelos pods. A VPA fornece valores recomendados para solicitações de CPU e memória e limites com base no uso histórico do contêiner, que você pode definir manualmente ou atualizar automaticamente. Melhor para aplicativos com demandas de recursos flutuantes. O modo de ausência somente recomendação do VPA permite que as equipes examinem as sugestões de recursos sem aplicá-las automaticamente. Esse modo pode ser habilitado durante o teste e as recomendações de VPA podem ser usadas para definir a solicitação de CPU e memória e os limites para ambientes de produção.
Dimensionamento automático horizontal de pods
Observação
Os clusters do AKS Automatic têm o HPA habilitado por padrão. Se você usa o AKS Standard, configure o HPA nas cargas de trabalho, conforme descrito em Dimensionamento automático de pods horizontal.
O HPA (Dimensionador Horizontal Automático de Pod) escala dinamicamente o número de réplicas de pod com base em métricas observadas, como utilização de CPU ou memória. Durante períodos de alta demanda, o HPA é expandido horizontalmente, adicionando mais réplicas de pod para distribuir a carga de trabalho. Durante períodos de baixa demanda, o HPA é reduzido horizontalmente, reduzindo o número de réplicas para conservar recursos. Melhor para aplicativos com demandas previsíveis de recursos.
Aviso
Você não deve usar o VPA com o HPA nas mesmas métricas de CPU ou de memória. Essa combinação pode levar a conflitos, pois ambos os dimensionadores automáticos tentam responder às alterações na demanda usando as mesmas métricas. No entanto, você pode usar o VPA para CPU ou memória com o HPA para métricas personalizadas, a fim de evitar a sobreposição e garantir que cada dimensionador automático se concentre em aspectos distintos da escala da carga de trabalho.
KEDA (Kubernetes Event-driven Autoscaling)
Observação
Os clusters do AKS Automatic têm o KEDA habilitado por padrão. Se você usar o AKS Standard, consulte Instale o complemento KEDA usando CLI do Azure para habilitar o KEDA.
O complemento KEDA (Kubernetes Event-driven Autoscaling) fornece flexibilidade extra para escala de acordo com várias métricas controladas por eventos que se alinham ao comportamento do aplicativo. Por exemplo, para um aplicativo Web, o KEDA pode monitorar o tráfego de solicitações HTTP de entrada e ajustar o número de réplicas de pod para garantir que o aplicativo permaneça responsivo. Para trabalhos de processamento, o KEDA pode dimensionar o aplicativo com base no comprimento da fila de mensagens. O suporte gerenciado é fornecido para todos os Dimensionadores do Azure. O KEDA também permite reduzir para 0 réplicas, sendo especialmente útil para cargas de trabalho esporádicas impulsionadas por eventos, cargas de trabalho periódicas de aprendizado de máquina ou GPU, e ambientes de desenvolvimento/teste ou de baixo tráfego.
Habilitar o dimensionamento automático de infraestrutura
Dimensionamento automático do cluster
Observação
No AKS Automatic, o dimensionamento de nós é realizado pelo provisionamento automático de nós (NAP), que vem pré-configurado por padrão. Para o AKS Standard sem NAP, configure o Dimensionador Automático de Cluster, conforme descrito nesta seção.
Para acompanhar a demanda do aplicativo, o Dimensionador Automático de Cluster inspeciona os pods que não podem ser agendados devido a restrições de recursos e escala adequadamente o número de nós no pool de nós. Quando os nós não têm pods em execução, o Dimensionador Automático de Cluster reduz verticalmente o número de nós. As configurações de perfil do Dimensionador Automático de Cluster se aplicam a todos os pools de nós habilitados para dimensionamento automático em um cluster. Para obter mais informações, confira Melhores práticas e considerações sobre o Dimensionador Automático de Cluster.
Provisionamento automático de nós
Observação
No AKS Automatic, o NAP (provisionamento automático de nós) é pré-configurado por padrão. O AKS seleciona automaticamente o SKU de VM ideal para cada carga de trabalho, sem a criação manual do pool de nós ou a seleção de SKU necessária. Para clusters padrão do AKS, siga as etapas em Habilitar ou desabilitar o NAP no AKS para habilitar o NAP.
Cargas de trabalho complicadas podem exigir vários pools de nós com diferentes configurações de tamanho de VM para acomodar os requisitos de CPU e memória. Selecionar e gerenciar com precisão várias configurações de pool de nós adiciona complexidade e sobrecarga operacional. O NAP (Provisionamento automático de nós) simplifica o processo de seleção de SKU e decide a configuração de VM ideal com base nos requisitos de recursos de pod pendentes para executar essas cargas de trabalho da maneira mais eficiente e econômica.
Observação
Para obter mais informações sobre melhores práticas de escala, confira Desempenho e escala para cargas de trabalho pequenas e médias no AKS (Serviço de Kubernetes do Azure) e Melhores práticas de desempenho e escala para cargas de trabalho grandes no AKS (Serviço de Kubernetes do Azure) .
Economizar com descontos do Azure
Reservas do Azure
Se sua carga de trabalho for previsível e existir por um longo período de tempo, considere a compra de uma Reserva do Azure para reduzir ainda mais os custos de recursos. As Reservas do Azure operam por um período de um ou três anos, oferecendo até 72% de desconto em comparação com os preços de pagamento conforme o uso para computação. As reservas se aplicam automaticamente aos recursos correspondentes. Melhor para cargas de trabalho que estão comprometidas com a execução nos mesmos SKUs e regiões durante um longo período de tempo.
Plano de Economia do Azure
Se você tiver gastos consistentes, mas seu uso de recursos diferentes entre SKUs e regiões tornar as Reservas do Azure inviáveis, considere a compra de um Plano de Economia do Azure. Assim como as Reservas do Azure, os Planos de Economia do Azure operam em um período de um ou três anos e se aplicam automaticamente a todos os recursos no escopo do benefício. Você se compromete a gastar um valor fixo por hora em recursos de computação, independentemente de SKU ou região. Melhor para cargas de trabalho que utilizam recursos diferentes e/ou regiões de data center diferentes.
Benefício Híbrido do Azure
O Benefício Híbrido do Azure para AKS (Serviço de Kubernetes do Azure) permite maximizar suas licenças locais sem nenhum custo adicional. Use quaisquer licenças locais qualificadas que também têm Software Assurance (SA) ativa ou uma assinatura qualificada para obter VMs do Windows no Azure a um custo reduzido.
Próximas etapas
A otimização de custo é um esforço contínuo e iterativo. Saiba mais examinando as seguintes recomendações e diretrizes de arquitetura:
- O que é o AKS Automatic? - Conte com otimização de custos integrada por padrão com uma experiência totalmente gerenciada de cluster.
- Microsoft Azure Well-Architected Framework para AKS: princípios de design para otimização de custos
- Guia de arquitetura de linha de base para o AKS
- Otimizar os custos de computação no AKS
- Técnicas de otimização de custos do AKS