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

Este artigo fornece diretrizes sobre como otimizar o uso e os custos do AKS (Serviço de Kubernetes do Azure). Ele aborda as diretrizes sobre os seguintes tópicos:

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 automaticamente 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.

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.

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 VPA (Dimensionador Automático de Pod Vertical) define automaticamente solicitações de recursos e limites em contêineres por carga de trabalho com base no uso anterior. 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.

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

É importante dimensionar seus clusters com o tamanho certo para otimizar os custos e o desempenho. Você pode redimensionar manualmente um cluster adicionando ou removendo nós para atender às necessidades dos 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.

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

Dimensionamento automático do cluster

Com o dimensionador automático de cluster, você pode dimensionar automaticamente pools de nós com base no uso de recursos e restrições, como aumentar para agendar pods pendentes ou reduzir para diminuir os custos de 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 (versão prévia)

Provisionamento automático de nós (NAP) (versão preliminar), com base no projeto de software livre Karpenter, ajuda a provisionar a infraestrutura adequada com base nos requisitos de recursos de pod pendentes para suas cargas de trabalho. Com um empacotamento eficiente, você pode consolidar suas cargas de trabalho em uma infraestrutura com o tamanho ideal para reduzir os custos operacionais.

Para obter mais informações, consulte o provisionamento automático de nós (versão prévia) 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 Operador de GPU NVIDIA habilita o fatiamento temporal de GPUs em clusters Kubernetes. Com a divisão de tempo, um administrador do sistema pode definir um conjunto de réplicas para uma GPU, cada uma podendo ser entregue de forma independente a um pod para a execução de 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 processamento múltiplo)

Um único processo pode não utilizar 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 e permite que operações de kernel e memcopy de diferentes processos se sobreponham à 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 de várias instâncias (MIGs) permitem particionar GPUs com base no NVIDIA Ampere e em arquiteturas posteriores em instâncias de GPU separadas e seguras para aplicativos 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

Próximas Etapas 

Para saber mais sobre o custo no AKS, confira os seguintes artigos: