Otimizar o uso e os custos do AKS (Serviço de Kubernetes do Azure)

Este artigo descreve maneiras práticas de otimizar o uso e os custos de AKS (Serviço de Kubernetes do Azure) em dimensionamento, dimensionamento de infraestrutura, uso de GPU, multilocatário e descontos de Azure.

Para a maioria das cargas de trabalho de produção, o AKS Automatic é o ponto de partida recomendado porque aplica padrões prontos para produção, automatiza operações principais e ajuda a reduzir o excesso de provisionamento. O AKS Standard continua sendo a escolha certa quando você precisa de uma personalização mais profunda da plataforma.

Este artigo aborda:

Escolha sua linha de base de otimização

Comece selecionando o modo de cluster do AKS que corresponde ao seu modelo de custo e operações.

Scenario Modo de cluster recomendado Por que
A maioria das cargas de trabalho de produção nas quais você busca alta eficiência de custos com menor sobrecarga operacional AKS Automático Padrões pré-configurados prontos para produção, operações gerenciadas e alocação eficiente de recursos ajudam a reduzir o desperdício e o tempo gasto ajustando a plataforma.
Cargas de trabalho que exigem ampla configuração de cluster personalizado, complementos especializados ou controles de plataforma estritos AKS Standard Controle total sobre a configuração do cluster e o modelo operacional.
Equipes em estágio inicial de maturidade operacional em Kubernetes e focadas em entrega rápida e previsível AKS Automático Reduz a complexidade do gerenciamento de plataforma para que as equipes possam se concentrar em aplicativos.
Equipes com processos de engenharia de plataforma estabelecidos e padrões de arquitetura específicos AKS Standard Dá suporte a personalização avançada e padrões operacionais personalizados.

Para obter mais informações, consulte O que é AKS (Serviço de Kubernetes do Azure) Automático?

Vantagens automáticas em termos de custo do AKS

O AKS Automatic reduz os custos de duas maneiras: minimiza o desperdício de computação por meio da automação e reduz a sobrecarga operacional da execução do Kubernetes. A tabela a seguir resume os recursos que têm um impacto de custo direto e como eles se comparam ao AKS Standard.

Os recursos pré-configurados são sempre habilitados e não podem ser alterados. Os recursos padrão são configurados para você, mas podem ser ajustados. Os recursos opcionais estão disponíveis para configuração e não estão habilitados por padrão.

Característica AKS Automático AKS Standard Impacto de custo
Provisionamento automático de nós (NAP) Pré-configurado Opcional Provisiona automaticamente nós com dimensionamento adequado para pods pendentes, reduzindo a capacidade ociosa e superprovisionada.
Escalador Automático de Pod Horizontal (HPA) Pré-configurados Opcional Dimensiona os pods conforme a demanda sem intervenção manual, evitando o desperdício de recursos em períodos de baixo tráfego.
KEDA (Dimensionador Automático Controlado por Eventos do Kubernetes) Pré-configurado Opcional O dimensionamento orientado por eventos elimina réplicas ociosas à espera de trabalho.
VPA (Vertical Pod Autoscaler) Pré-configurados Opcional Ajusta automaticamente as solicitações e os limites de recursos dos pods com base no uso real ao longo do tempo.
Eficiência de empacotamento de compartimento de pod Pré-configurado Ajuste manual Os pods são empacotados com eficiência para maximizar a utilização do nó, reduzindo a contagem total de nós necessária.
Insigths gerenciados do Prometheus + Contêiner Default Opcional Fornece visibilidade imediata dos custos desde o primeiro dia, sem exigir configuração de observabilidade.
Atualizações automáticas do sistema operacional do cluster e dos nós Pré-configurados Manual ou opcional Elimina a sobrecarga de engenharia associada às atualizações e reduz o risco de incidentes de segurança dispendiosos causados por nós não corrigidos.
Reparo automático de nó Pré-configurado Pré-configurados Reduz os custos de indisponibilidade causados por nós não íntegros sem intervenção manual.
Grupo de recursos dos nós totalmente gerenciado Pré-configurados Bloqueio opcional Impede modificações de recursos acidentais ou não autorizadas que podem gerar custos inesperados.
SLA de disponibilidade (99,95% do servidor da API) Incluído Pago (upgrade para o nível Standard) Nenhum custo extra para obter uma garantia de disponibilidade com respaldo financeiro.
SLA de preparação do pod (99,9% em até 5 minutos) Incluído Não disponível Comportamento de dimensionamento previsível sem investimento de confiabilidade personalizado.

Note

Como ferramentas de dimensionamento como HPA, KEDA e VPA são pré-configuradas no AKS Automatic, as equipes não incorrem no custo de instalação, teste e manutenção da configuração desses próprios recursos. No AKS Standard, cada um desses recursos requer configuração manual e ajuste contínuo.

Dimensionamento automático

Dimensionamento automático horizontal de pods

O HPA (Dimensionador Automático de Pod Horizontal) monitora a demanda de recursos e atualiza automaticamente um recurso de carga de trabalho para dimensionar o número de pods para corresponder à demanda. A resposta ao aumento da carga é implantar mais pods. Se a carga diminuir e o número de pods estiver acima do mínimo configurado, o dimensionador automático instrui o recurso de carga de trabalho a reduzir a escala.

A API de Métricas obtém dados do kubelet a cada 60 segundos e o HPA verifica a API de Métricas a cada 15 segundos para quaisquer alterações necessárias por padrão. Isso significa que o HPA é atualizado a cada 60 segundos. Ao configurar o HPA para uma implantação, você define o número mínimo e máximo de réplicas que podem ser executadas e as métricas que o HPA usa para determinar quando dimensionar.

Tip

No AKS Automatic, o HPA é pré-configurado e pronto para uso sem configuração adicional. No AKS Standard, você configura o HPA manualmente em cada carga de trabalho.

Para obter mais informações, consulte Dimensionamento automático de pods horizontal e Pods de escala automática no AKS.

Dimensionamento automático controlado por eventos do Kubernetes

O KEDA (Dimensionador Automático controlado por eventos) do Kubernetes aplica o dimensionamento automático controlado por eventos às suas cargas de trabalho. O KEDA trabalha com o HPA e pode estender a funcionalidade sem sobrescrever nem duplicá-la.

Tip

No AKS Automatic, o KEDA é pré-configurado e habilitado no cluster. No AKS Standard, você instala e configura o complemento KEDA manualmente.

Você pode usar o complemento KEDA para AKS para dimensionar seus aplicativos e aproveitar um catálogo avançado de dimensionadores KEDA do Azure. Para obter mais informações, consulte o dimensionamento automático de aplicativos com o complemento KEDA e instale o complemento KEDA para AKS.

Dimensionamento automático de pod vertical

O Vertical Pod Autoscaler (VPA) ajusta automaticamente as solicitações e os limites de recursos para contêineres de cada carga de trabalho com base no uso histórico. O VPA libera recursos de CPU e memória para os pods, garantindo uma utilização eficaz dos seus clusters AKS. Ao longo do tempo, a VPA fornece recomendações para uso de recursos.

Tip

No AKS Automatic, o VPA é pré-configurado e habilitado no cluster. No AKS Standard, você habilita e configura o VPA manualmente.

Para obter mais informações, consulte Dimensionamento automático de pod vertical no AKS (Serviço de Kubernetes do Azure) e use o VPA (Dimensionador Automático de Pod Vertical) no AKS (Serviço de Kubernetes do Azure).

Dimensionamento correto do cluster

Dimensionar corretamente o seu cluster

Dimensione seus clusters com o tamanho certo para otimizar os custos e o desempenho. Redimensione manualmente um cluster adicionando ou removendo nós para atender às necessidades de seus aplicativos. Você também pode dimensionar automaticamente seu cluster para ajustar automaticamente o número de nós em resposta às mudanças nas demandas.

Tip

O AKS Automatic habilita o Managed Prometheus e o Container Insights por padrão, para que você obtenha visibilidade imediata da utilização de recursos desde o primeiro dia. No AKS Standard, você configura a observabilidade separadamente. A visibilidade antecipada ajuda você a agir diante de sinais de provisionamento excessivo antes que eles se acumulem e se transformem em desperdício contínuo.

Para obter mais informações, consulte Redimensionar clusters do AKS (Serviço de Kubernetes do Azure).

Dimensionamento automático do cluster

Usando o dimensionador automático de cluster, você pode dimensionar automaticamente pools de nós com base no uso de recursos e restrições. Por exemplo, aumentar a escala para agendar pods pendentes ou reduzir a escala para diminuir os custos com nós não utilizados. O perfil do dimensionador automático de cluster é um conjunto de parâmetros que você pode ajustar para controlar o comportamento do dimensionador automático de cluster.

Para obter mais informações, consulte Dimensionamento automático de cluster na visão geral do AKS (Serviço de Kubernetes do Azure) e use o dimensionador automático de cluster no AKS (Serviço de Kubernetes do Azure).

Provisionamento automático de nós

O NAP (provisionamento automático de nós), com base no Karpenter, provisiona a infraestrutura de tamanho certo para pods pendentes e melhora a eficiência de empacotamento de compartimentos.

  • No AKS Automatic, o provisionamento automático de nós faz parte da experiência gerenciada.
  • No AKS Standard, o provisionamento automático de nós estará disponível quando você precisar desse recurso com um modelo de cluster personalizado.

Para obter mais informações, consulte o provisionamento automático de nós no AKS (Serviço de Kubernetes do Azure).

Otimizações de GPU

Particionamento e compartilhamento de GPU

O particionamento de GPU ajuda a combater a subutilização dividindo ou compartilhando GPUs em várias cargas de trabalho. As seções a seguir abrangem diferentes maneiras de particionar e compartilhar GPUs no AKS.

Divisão de tempo

O NVIDIA GPU Operator habilita o fatiamento de tempo das GPUs em clusters do Kubernetes. Ao usar o fatiamento de tempo, um administrador de sistema pode definir um conjunto de réplicas para uma GPU, podendo cada uma delas ser atribuída independentemente a um pod para executar cargas de trabalho. É possível aplicar configurações padrão de divisão de tempo para todo o cluster e configurações específicas para cada nó.

Captura de tela de um exemplo de gráfico visual mostrando o fatiamento de tempo da GPU.

Para obter mais informações, consulte GPUs de divisão de tempo no Kubernetes.

MPS (Serviço de Vários Processos)

Um único processo pode não usar toda a capacidade de memória e largura de banda de computação disponível em uma GPU. O MPS (Serviço de Vários Processos) permite o particionamento lógico de recursos de memória e computação entre cargas de trabalho. Isso também permite que operações de kernel e de cópia de memória de diferentes processos se sobreponham na GPU. O MPS ajuda você a obter maior utilização de GPU e tempos de execução mais curtos.

Captura de tela de um exemplo de gráfico visual mostrando MPS (serviço de vários processos) de GPU.

Para obter mais informações, consulte MPS (Serviço de Vários Processos).

GPUs de várias instâncias (MIGs)

As GPUs multi-instância (MIGs) permitem dividir GPUs baseadas na arquitetura NVIDIA Ampere e em arquiteturas posteriores em instâncias de GPU separadas e seguras para aplicações CUDA.

Captura de tela de um exemplo de gráfico visual mostrando MIGs (GPUs de várias instâncias).

Para obter mais informações, consulte Operador de GPU com MIG e Criar um pool de nós de GPU de várias instâncias no AKS (Serviço de Kubernetes do Azure).

Multilocação

Multitenancy refere-se ao compartilhamento de infraestrutura entre inquilinos, equipes e unidades de negócios. A tabela a seguir apresenta diferentes formas de implementar a multilocação no AKS:

Tipo de multilocação Nível de multilocação Densidade de pods em cluster Alocação de custos Caso de uso ideal Riscos potenciais
Cluster dedicado Multilocação rígida Baixo Mais fácil Limites completos de barreiras de isolamento de segurança e alocação de custo clara • Expansão de cluster em escala aumenta os custos de sobrecarga de gerenciamento
• Menor densidade de pod e mais recursos superalocados
Pool de nós dedicado Multilocação flexível Medium Medium Densidade média do pod • Requer confiança entre locatários
• Requer configurações de cluster extras, como políticas de rede, gerenciamento de cotas, RBAC (controle de acesso baseado em função), etc.
Namespace dedicado Multilocação flexível Superior Mais difícil Infraestrutura de compartilhamento para maximizar a utilização de recursos • Não seguro para ambientes hostis por padrão
• Requer configurações de cluster extras, como políticas de rede, gerenciamento de cotas, RBAC (controle de acesso baseado em função), etc.

Cluster dedicado

Com a multilocação de cluster dedicada, os clusters são dedicados a uma única carga de trabalho ou equipe.

Captura de tela de um exemplo de gráfico que ilustra a multilocação em cluster dedicado.

A tabela a seguir descreve os prós e contras do uso de um cluster dedicado:

Vantagens Cons
• Método de isolamento mais fácil
• Alocação de custos e repasse de despesas de forma simples
• Ótimo para casos em que os locatários não confiam uns nos outros (muitas vezes de perspectivas de segurança e compartilhamento de recursos)
• Alta administração e sobrecarga financeira
• Densidade de pods geralmente baixa e recursos superprovisionados

Pool de nós dedicado

Com multilocação de pool de nós dedicado, os clusters são compartilhados por muitos locatários.

Captura de tela de um exemplo de gráfico que ilustra a multilocação em um conjunto de nós dedicados.

A tabela a seguir descreve os prós e contras do uso de um pool de nós dedicado:

Vantagens Cons
• Densidade média do pod
• Alguma infraestrutura compartilhada
• Aplique tags do Azure a conjuntos de nós dedicados a um único locatário (as tags são propagadas aos nós e permanecem após as atualizações)
• Requer confiança entre os locatários
• Requer configurações de cluster extras, como políticas de rede, gerenciamento de cotas, RBAC (controle de acesso baseado em função), etc.

Namespace dedicado

Com multilocação de namespace dedicada, os clusters são compartilhados por muitos locatários, com os namespaces servindo como a fronteira de isolamento.

Captura de tela de um exemplo de gráfico visual mostrando a multilocação em namespaces dedicados.

A tabela a seguir descreve os prós e contras do uso de um namespace dedicado:

Vantagens Cons
• Maior densidade de pods
• Melhor binpacking
• Compartilhamento de infraestrutura para maximizar a utilização de recursos
• Não seguro para ambientes hostis por padrão
• Requer medidas de segurança adicionais que devem ser implementadas se não se pode confiar em todos os locatários.

Descontos do Azure

Para levar a economia um passo adiante, aproveite os descontos do Azure, como Planos de Poupança do Azure, Instâncias Reservadas e Benefícios Híbridos do Azure.

Tipo de desconto do Azure Detalhes
Planos de Poupança do Azure • Compromisso inicial de 1 a 3 anos
• Economize até 65% em comparação ao pagamento por uso
• Flexível, sem restrições de família ou região de SKU
• Melhor para cargas de trabalho com custos consistentes e recursos em diferentes SKUs e regiões.
Instâncias Reservadas • Compromisso inicial de 1 a 3 anos
• Economize até 72% em comparação ao modelo de pagamento por uso
• Restrito a famílias e regiões de SKU específicas
• Melhor para cargas de trabalho estáveis em execução contínua (sem alterações inesperadas de SKU ou região)
Benefícios híbridos do Azure • Traga suas próprias licenças locais do Windows Server e do SQL Server para o Azure
• Use qualquer licença local qualificada que tenha uma SA (Software Assurance) ativa ou uma assinatura qualificada

Para saber mais sobre os custos do AKS e o AKS Automatic, confira os seguintes artigos: