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.
Este artigo fornece uma visão geral do uso do Vertical Pod Autoscaler (VPA) no Serviço Kubernetes do Azure (AKS), que se baseia na versão de código aberto do Kubernetes .
Quando configurado, o VPA define automaticamente as solicitações de recursos e os limites de contêineres por carga de trabalho com base no uso anterior. O VPA libera CPU e memória para outros pods e ajuda a garantir a utilização eficaz de seus clusters AKS. O Vertical Pod Autoscaler fornece recomendações para o uso de recursos ao longo do tempo. Para gerenciar aumentos repentinos no uso de recursos, use o Horizontal Pod Autoscaler, que dimensiona o número de réplicas de pods conforme necessário.
Benefícios
O Vertical Pod Autoscaler oferece os seguintes benefícios:
- Analisa e ajusta os recursos de processador e memória para o tamanho correto de seus aplicativos. VPA não é apenas responsável pelo escalonamento para cima, mas também pelo escalonamento para baixo com base no uso de recursos ao longo do tempo.
- Um pod com um modo de dimensionamento definido como automático ou recriar é removido se precisar alterar suas solicitações de recursos.
- Você pode definir restrições de CPU e memória para contêineres individuais especificando uma política de recursos.
- Garante que os nós tenham recursos corretos para o agendamento de pods.
- Oferece registro configurável de quaisquer ajustes feitos no processador ou nos recursos de memória feitos.
- Melhora a utilização de recursos de cluster e libera CPU e memória para outros pods.
Limitações e considerações
Considere as seguintes limitações e considerações ao usar o Vertical Pod Autoscaler:
- VPA suporta um máximo de 1.000 pods associados a
VerticalPodAutoscaler
objetos por cluster. - VPA pode recomendar mais recursos do que os disponíveis no cluster, o que impede a atribuição do pod a um nó e sua execução por causa de recursos insuficientes. Você pode superar essa limitação definindo o LimitRange para o máximo de recursos disponíveis por namespace, o que garante que os pods não solicitem mais recursos do que o especificado. Você também pode definir recomendações de recursos máximos permitidos por pod em um
VerticalPodAutoscaler
objeto. O VPA não consegue resolver completamente um problema de recurso de nó insuficiente. O intervalo de limite é fixo, mas o uso do recurso do nó altera-se dinamicamente. - Não recomendamos o uso do VPA com o Horizontal Pod Autoscaler (HPA), que é dimensionado com base nas mesmas métricas de uso de CPU e memória.
- O VPA Recommender armazena apenas até oito dias de dados históricos.
- O VPA não suporta cargas de trabalho baseadas em JVM devido à visibilidade limitada do uso real da memória da carga de trabalho.
- O VPA não suporta a execução da sua própria implementação de VPA ao lado dele. Ter uma recomendação extra ou personalizada é compatível.
- Os contêineres do Windows AKS não são suportados.
Visão geral do VPA
O objeto VPA consiste em três componentes:
- Recomendador: O Recomendador monitora o consumo de recursos atual e passado, incluindo histórico de métricas, eventos de Falta de Memória (OOM) e especificações de implantação do VPA, e utiliza as informações recolhidas para fornecer valores recomendados para solicitações/limites de CPU e memória dos contêineres.
- Atualizador: o Updater monitora pods gerenciados para garantir que suas solicitações de recursos estejam definidas corretamente. Se não, ele remove esses pods para que seus controladores possam recriá-los com as solicitações atualizadas.
- Controlador de Admissão de VPA: O Controlador de Admissão de VPA define as solicitações de recursos corretas em novos pods criados ou recriados pelo seu controlador com base na atividade do Atualizador.
Controlador de admissão de VPA
O VPA Admission Controller é um binário que se regista como um Webhook de Admissão Mutável. Quando um novo pod é criado, o VPA Admission Controller recebe uma solicitação do servidor de API e avalia se há uma configuração de VPA correspondente ou encontra uma correspondente e usa a recomendação atual para definir solicitações de recursos no pod.
Um trabalho independente, overlay-vpa-cert-webhook-check
, é executado fora do VPA Admission Controller. O overlay-vpa-cert-webhook-check
trabalho cria e renova os certificados e regista o VPA Admission Controller como um MutatingWebhookConfiguration
.
Modos de operação do objeto VPA
Um recurso Vertical Pod Autoscaler, mais comumente uma implantação, é inserido para cada controlador cujo pretenda que os requisitos de recursos sejam calculados automaticamente.
Existem quatro modos de funcionamento do VPA:
-
Auto
: VPA atribui solicitações de recursos durante a criação de pods e atualiza pods existentes usando o mecanismo de atualização preferido.Auto
, que é equivalente aRecreate
, é o modo padrão. Uma vez que as atualizações sem reinicialização, ou in-loco, de solicitações de pod estejam disponíveis, estas podem ser usadas como o mecanismo de atualização preferido pelo modoAuto
. Com o modoAuto
, a VPA expulsa um pod se precisar alterar os pedidos de recursos. Isso pode fazer com que os pods sejam reiniciados de uma só vez, o que pode causar inconsistências no aplicativo. Você pode limitar as reinicializações e manter a consistência nessa situação usando um PodDisruptionBudget. -
Recreate
: O VPA atribui pedidos de recursos durante a criação dos pods e atualiza os pods existentes, removendo-os quando os recursos solicitados diferem significativamente das novas recomendações (respeitando o PodDisruptionBudget, se definido). Você só deve usar esse modo se precisar garantir que os pods sejam reiniciados sempre que a solicitação de recurso for alterada. Caso contrário, recomendamos usar o modoAuto
, que aproveita as atualizações disponíveis sem reinicialização. -
Initial
: O VPA atribui solicitações de recursos apenas durante a criação do pod. Ele não atualiza pods existentes. Este modo é útil para testar e entender o comportamento do VPA sem afetar os pods em execução. -
Off
: VPA não altera automaticamente os requisitos de recursos dos pods. As recomendações são calculadas e podem ser inspecionadas no objeto VPA.
Padrão de implantação para desenvolvimento de aplicativos
Se você não estiver familiarizado com o VPA, recomendamos o seguinte padrão de implantação durante o desenvolvimento do aplicativo para identificar suas características exclusivas de utilização de recursos, testar o VPA para verificar se está funcionando corretamente e testar junto com outros componentes do Kubernetes para otimizar a utilização de recursos do cluster:
- Defina
UpdateMode = "Off"
no seu cluster de produção e execute o VPA no modo de recomendação para testar e familiarizar-se com o VPA.UpdateMode = "Off"
pode evitar a introdução de uma configuração incorreta que pode causar uma interrupção. - Estabeleça a observabilidade começando por recolher a telemetria da utilização efetiva de recursos durante um determinado período de tempo. Isto ajuda a compreender o comportamento e quaisquer sinais de problemas nos recursos de contentores e pods influenciados pelas cargas de trabalho que estão neles em execução.
- Familiarize-se com os dados de monitoramento para entender as características de desempenho. Com base nessa perceção, defina as solicitações/limites desejados de acordo, e em seguida, implemente ou atualize na próxima oportunidade.
- Defina
updateMode
o valor comoAuto
,Recreate
ouInitial
dependendo dos seus requisitos.
Próximos passos
Para saber como configurar o Vertical Pod Autoscaler no seu cluster AKS, consulte Usar o Vertical Pod Autoscaler no AKS.
Azure Kubernetes Service