Otimize a utilização e os custos do Azure Kubernetes Service (AKS)

Este artigo descreve formas práticas de otimizar a utilização e os custos do Azure Kubernetes Service (AKS) através de escalabilidade, dimensionamento da infraestrutura, utilização de GPU, multitenancy e descontos no Azure.

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

Este artigo aborda:

Escolha a sua linha de base de otimização

Comece por selecionar o modo cluster AKS que corresponde ao seu modelo de custos e operações.

Scenario Modo de agrupamento recomendado Porquê
A maioria das cargas de trabalho de produção exige uma forte eficiência de custos com menor sobrecarga operacional AKS Automático Os padrões pré-configurados para produção prontos, operações geridas e uma alocação eficiente de recursos ajudam a reduzir o desperdício e o tempo gasto a ajustar a plataforma.
Cargas de trabalho que requerem uma configuração extensa de clusters personalizados, add-ons especializados ou controlos rigorosos de plataforma Padrão AKS Controlo total sobre a configuração do cluster e o modelo operacional.
Equipas numa fase inicial de maturidade das operações em Kubernetes e focadas numa entrega rápida e previsível AKS Automático Reduz a complexidade da gestão da plataforma para que as equipas possam focar-se nas aplicações.
Equipas com processos de engenharia de plataforma estabelecidos e normas arquitetónicas específicas Padrão AKS Suporta personalização avançada e padrões operacionais personalizados.

Para mais informações, veja O que é o Azure Kubernetes Service (AKS) Automatic?

Vantagens de custo do AKS Automatic

O AKS Automatic reduz custos de duas formas: minimiza o desperdício de computação através da automação e reduz a sobrecarga operacional da execução do Kubernetes. A tabela seguinte resume as funcionalidades que têm impacto direto no custo e como se comparam ao AKS Standard.

As funcionalidades pré-configuradas estão sempre ativadas e não podem ser alteradas. As funcionalidades padrão estão configuradas para si, mas podem ser ajustadas. Funcionalidades opcionais estão disponíveis para configurar e não estão ativadas por defeito.

Feature AKS Automático Padrão AKS Impacto nos custos
Autoprovisionamento de nós (NAP) Pré-configurado Opcional Fornece automaticamente nós do tamanho correto para pods pendentes, reduzindo a capacidade ociosa e sobreaprovisionada.
Autoscaler de pod horizontal (HPA) Pré-configurado Opcional Ajusta o número de pods em função da procura, sem intervenção manual, evitando o desperdício de recursos em períodos de baixo tráfego.
Kubernetes Autoscaler orientado por eventos (KEDA) Pré-configurado Opcional A escalabilidade orientada por eventos elimina réplicas ociosas à espera de trabalho.
Autoscaler de pod vertical (VPA) Pré-configurado Opcional Ajusta automaticamente os pedidos e limites de recursos do pod com base na utilização real ao longo do tempo.
Eficiência de empacotamento de pod bin Pré-configurado Afinação manual Os pods são embalados em bins de forma eficiente para maximizar a utilização dos nós, reduzindo o número total de nós necessário.
Prometheus gerido + Informações sobre Contentores Predefinição Opcional Proporciona uma visibilidade imediata dos custos desde o primeiro dia, sem necessidade de configuração de observabilidade.
Atualizações automáticas dos sistemas operativos do cluster e dos nós Pré-configurado Manual ou opcional Elimina a sobrecarga de engenharia relacionada com atualizações e reduz o risco de incidentes de segurança dispendiosos provenientes de nós não atualizados.
Reparação automática de nós Pré-configurado Pré-configurado Reduz os custos de inatividade causados por nós não saudáveis sem intervenção manual.
Grupo de recursos de nós totalmente gerido Pré-configurado Confinamento opcional Previne modificações acidentais ou não autorizadas de recursos que possam gerar custos inesperados.
Uptime SLA (servidor da API a 99,95%) Incluídos Pago (Upgrade de nível padrão) Não há custos adicionais para obter uma garantia de tempo de atividade garantida financeiramente.
SLA de prontidão do pod (99,9% em 5 minutos) Incluídos Não disponível Comportamento de escalabilidade previsível sem investimento personalizado em fiabilidade.

Note

Como ferramentas de escalabilidade como HPA, KEDA e VPA estão pré-configuradas no AKS Automatic, as equipas não suportam o custo de configuração, teste e manutenção de configurar estas funcionalidades por si mesmas. No AKS Standard, cada uma destas funcionalidades requer configuração manual e ajustes contínuos.

Dimensionamento automático

Dimensionamento automático horizontal do pod

O Horizontal Pod Autoscaler (HPA) monitoriza as necessidades de recursos e atualiza automaticamente um recurso de carga de trabalho para ajustar o número de pods de acordo com a procura. A resposta ao aumento da carga é a implantação de mais pods. Se a carga diminuir e o número de pods estiver acima do mínimo configurado, o autoscaler diz ao recurso de carga de trabalho para diminuir.

A API de Métricas recebe 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. Isto significa que o HPA é atualizado a cada 60 segundos. Quando configuras o HPA para uma implementação, defines 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 escalar.

Tip

No AKS Automático, o HPA está pré-configurado e pronto a usar sem configuração adicional. No AKS Standard, configura-se o HPA manualmente em cada carga de trabalho.

Para mais informações, veja Horizontal Pod Autoscaling e Autoscale pods no AKS.

Dimensionamento automático controlado por eventos do Kubernetes

O Kubernetes Event-driven Autoscaler (KEDA) aplica dimensionamento automático baseado em eventos às suas cargas de trabalho. O KEDA funciona com o HPA e pode estender funcionalidades sem sobrescrever ou duplicar.

Tip

No AKS Automatic, o KEDA está pré-configurado e ativado no cluster. No AKS Standard, instala-se e configura manualmente o complemento KEDA.

Pode usar o add-on KEDA para AKS para escalar as suas aplicações e aproveitar um catálogo rico de escaladores Azure KEDA. Para mais informações, consulte Escalonamento automático de aplicações com o complemento KEDA e Instalar o complemento KEDA para AKS.

Dimensionamento automático de pods verticais

O Vertical Pod Autoscaler (VPA) define automaticamente pedidos de recursos e limites de contentores por carga de trabalho, com base no uso passado. O VPA liberta a CPU e a memória para os pods, para garantir a utilização eficaz dos seus clusters AKS. Com o tempo, a VPA fornece recomendações para a utilização dos recursos.

Tip

No AKS Automatic, o VPA é pré-configurado e ativado no cluster. No AKS Standard, ativas e configuras o VPA manualmente.

Para mais informações, consulte Vertical Pod Autoscaling no Azure Kubernetes Service (AKS) e Utilize o Vertical Pod Autoscaler (VPA) no Azure Kubernetes Service (AKS).

Dimensionamento correto do cluster

Dimensione corretamente o seu cluster

Redimensione corretamente os seus clusters para otimizar custos e desempenho. Redimensione manualmente um cluster adicionando ou removendo nós para satisfazer as necessidades das suas aplicações. Você também pode dimensionar automaticamente seu cluster para ajustar automaticamente o número de nós em resposta às demandas em mudança.

Tip

O AKS Automatic ativa o Managed Prometheus e o Container Insights por defeito, pelo que tem visibilidade imediata sobre a utilização dos recursos desde o primeiro dia. No AKS Standard, configura-se a observabilidade separadamente. A deteção precoce ajuda a agir sobre os sinais de sobreaprovisionamento antes de se acumularem e resultarem em desperdício contínuo.

Para mais informações, consulte Redimensionar clusters do Azure Kubernetes Service (AKS).

Escalonamento automático de clusters

Ao usar o escalonador automático do cluster, pode escalar automaticamente os pools de nós com base no uso de recursos e nas restrições. Por exemplo, escalar para agendar pods pendentes ou reduzir para reduzir custos de nós não utilizados. O perfil do autoescalador do cluster é um conjunto de parâmetros que pode ajustar finamente para controlar o comportamento do autoescalador do cluster.

Para mais informações, consulte a visão geral do dimensionamento automático de cluster no Azure Kubernetes Service (AKS) e Utilizar o dimensionador de cluster no Azure Kubernetes Service (AKS).

Autoprovisionamento de nós

O autoprovisionamento de nós (NAP), baseado no Karpenter, prevê uma infraestrutura de tamanho adequado para pods pendentes e melhora a eficiência do empacotamento de bins.

  • No AKS Automatic, o autoprovisionamento de nós está integrado na experiência gerida.
  • No AKS Standard, o aprovisionamento automático de nós está disponível quando precisar desta funcionalidade com um modelo de cluster personalizado.

Para mais informações, consulte Aprovisionamento automático de nós no Azure Kubernetes Service (AKS).

Otimizações da GPU

Particionamento e partilha da GPU

A partição das GPUs ajuda a combater a subutilização ao dividir ou partilhar GPUs entre várias cargas de trabalho. As secções seguintes abordam diferentes formas de particionar e partilhar GPUs no AKS.

Fatiamento temporal

O NVIDIA GPU Operator permite a partilha temporal das GPUs em clusters do Kubernetes. Ao utilizar o time-sliceing, um administrador de sistemas pode definir um conjunto de réplicas para uma GPU, cada uma das quais o administrador pode distribuir independentemente a um pod para executar cargas de trabalho. Pode aplicar configurações padrão de segmentação temporal em todo o cluster e configurações específicas de nós.

Captura de ecrã de um exemplo de gráfico visual que mostra o time-slicing da GPU.

Para mais informações, consulte Particionamento Temporal de GPUs no Kubernetes.

Serviço Multiprocesso (MPS)

Um único processo pode não usar toda a capacidade de memória e largura de banda de computação disponível numa GPU. O Multi-Process Service (MPS) permite a partição lógica de memória e recursos de computação entre cargas de trabalho. Também permite que operações do kernel e de cópia de memória de diferentes processos se sobreponham na GPU. O MPS ajuda-te a conseguir maior utilização da GPU e tempos de execução mais curtos.

Captura de ecrã de um exemplo de gráfico visual que mostra o serviço multiprocesso (MPS) da GPU.

Para mais informações, consulte Serviço Multiprocesso (MPS).

Instâncias múltiplas de GPUs (MIGs)

As GPUs multiinstância (MIGs) permitem-lhe particionar GPUs baseadas nas arquiteturas NVIDIA Ampere e posteriores em instâncias GPU separadas e seguras para aplicações CUDA.

Captura de ecrã de um exemplo de gráfico visual que mostra GPUs multi-instância (MIGs).

Para mais informações, consulte Operador de GPU com MIG e Criar um pool de nós de GPU de múltiplas instâncias no Azure Kubernetes Service (AKS).

Multilocação

Multitenência refere-se à partilha de infraestruturas entre inquilinos, equipas e unidades de negócio. A tabela seguinte descreve diferentes formas de implementar multitenência no AKS:

Tipo de multitenência Nível de Multitenência Densidade de pods de cluster Repartição dos custos Caso de uso ideal Riscos potenciais
Cluster dedicado Multitenência rígida Mais baixo Mais fácil Limites completos de isolamento de segurança e alocação direta de custos • A expansão de clusters em larga escala aumenta os custos de gestão
• Menor densidade de pods e recursos superprovisionados
Pool de nós dedicado Multitenência flexível Medium Medium Densidade média de cápsulas • Requer confiança entre inquilinos
• Requer configurações adicionais de cluster, como políticas de rede, gestão de quotas, controlo de acesso baseado em funções (RBAC), etc.
Espaço de nomes dedicado Multitenência flexível Mais alto Mais difícil Partilha de infraestruturas para maximizar a utilização de recursos • Inseguro para ambientes hostis por defeito
• Requer configurações adicionais de cluster, como políticas de rede, gestão de quotas, controlo de acesso baseado em funções (RBAC), etc.

Cluster dedicado

Com a multitenência dedicada de clusters, os clusters são dedicados a uma única carga de trabalho ou equipa.

Captura de ecrã de um exemplo de gráfico visual que mostra multitenência dedicada ao cluster.

A tabela seguinte apresenta as vantagens e desvantagens de usar um cluster dedicado:

Vantagens Cons
• Método de isolamento mais fácil
• Alocação direta de custos e repartição de despesas
• Ótimo para casos em que os inquilinos não confiam uns nos outros (muitas vezes em termos de segurança e partilha de recursos)
• Alta gestão e custos financeiros
• Densidade de pods geralmente baixa e recursos sobrecarregados

Pool de nós dedicado

Com multitenência dedicada de pool de nós, os clusters são partilhados por muitos inquilinos.

Captura de ecrã de um exemplo de gráfico mostrando um pool de nós dedicado para multitenância.

A tabela seguinte descreve os prós e contras de usar um pool de nós dedicado:

Vantagens Cons
• Densidade média de cápsulas
• Alguma infraestrutura partilhada
• Aplique etiquetas do Azure a pools de nós dedicados a um único inquilino (as etiquetas propagam-se para os nós e persistem durante as atualizações de software)
• Requer confiança entre os inquilinos
• Requer configurações adicionais de cluster, como políticas de rede, gestão de quotas, controlo de acesso baseado em funções (RBAC), etc.

Espaço de nomes dedicado

Com multitenância dedicada de namespace, os clusters são partilhados por muitos inquilinos, com namespaces a servirem como limite de isolamento.

Captura de ecrã de um exemplo de gráfico visual que mostra multitenância dedicada no namespace.

A tabela seguinte descreve as vantagens e desvantagens de usar um namespace dedicado:

Vantagens Cons
• Maior densidade de pods
• Melhor embalagem de contentores
• Partilha de infraestruturas para maximizar a utilização de recursos
• Inseguro para ambientes hostis por defeito
• Exige medidas de segurança adicionais caso não todos os inquilinos sejam de confiança

Azure Descontos

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

Tipo de desconto do Azure Detalhes
Planos de Poupança Azure • Compromisso inicial de 1 a 3 anos
• Poupar até 65% comparado com o pay-as-you-go
• Flexível, sem restrições de famílias ou regiões de SKU
• Melhor para cargas de trabalho com custos consistentes e recursos distribuídos em vários SKUs e regiões
Instâncias Reservadas • Compromisso inicial de 1 a 3 anos
• Poupar até 72% comparado com o pay-as-you-go
• Restrito a famílias e regiões específicas de SKUs
• Melhor para cargas de trabalho estáveis a correr continuamente (sem alterações inesperadas de SKU ou região)
Azure Hybrid Benefits • Traga as suas próprias licenças Windows Server e SQL Server on-premises para a Azure
• Utilizar quaisquer licenças on-premises qualificadas que tenham uma Garantia de Software (SA) ativa ou subscrição qualificada

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