Considerações sobre escalabilidade para ambientes do Serviço de Kubernetes do Azure
O AKS (Serviço de Kubernetes do Azure) pode ser expandido e reduzido horizontalmente dependendo das necessidades de infraestrutura (exigindo mais ou menos capacidade), adicionando pools de nós com recursos especiais, como GPU, ou necessidades de aplicativos; nesse caso, há vários fatores, como número e taxa de conexões simultâneas, número de solicitações e latências de back-end em aplicativos do AKS.
As opções de escalabilidade mais comuns para o AKS são o dimensionador automático de cluster e o dimensionador automático de pod horizontal. O dimensionador automático de cluster ajusta o número de nós com base nos recursos de computação solicitados no pool de nós. O HPA (dimensionador automático de pod horizontal) ajusta o número de pods em uma implantação, dependendo da utilização da CPU ou de outras métricas configuradas.
Considerações sobre o design
Aqui estão alguns fatores cruciais a serem levados em consideração:
A escalabilidade rápida é um requisito para seu aplicativo (sem tempo de espera)?
- Para que um provisionamento rápido de pods use nós virtuais, eles só têm suporte com nós/pods do Linux.
A carga de trabalho não é sensível ao tempo e pode lidar com interrupções? Considere o uso de VMs spot
A infraestrutura subjacente (plug-in de rede, intervalos de IP, limites de assinatura, cotas etc.) é capaz de escalar horizontalmente?
Considere a possibilidade de automatizar a escalabilidade
- Você pode habilitar o dimensionamento automático do cluster para dimensionar o número de nós. Considere o dimensionamento automático do cluster e a escala para zero
- O dimensionador automático de pod horizontal dimensiona automaticamente o número de pods.
Considere a escalabilidade com várias zonas e pools de nós
- Ao criar pools de nós, considere definir Zonas de Disponibilidade com o AKS.
- Considere usar vários pools de nós para dar suporte a aplicativos com requisitos diferentes.
- Dimensione pools de nós com o dimensionador de cluster.
- Você pode dimensionar os pools de nó do usuário para zero. Confira as limitações.
Recomendações sobre design
Siga estas práticas recomendadas para o seu design:
- Use VMSS (conjuntos de dimensionamento de máquinas virtuais), que são necessários para cenários incluindo dimensionamento automático, vários pools de nós e suporte a pool de nós do Windows.
- Não habilite nem edite manualmente as configurações de escalabilidade de VMSS no portal do Azure ou usando a CLI do Azure. Em vez disso, use o dimensionador automático de cluster.
- Se você precisar de dimensionamento automático de intermitência rápida, escolha a intermitência do cluster do AKS usando Instâncias de Contêiner do Azure e nós virtuais para obter escalabilidade rápida e infinita e cobrança por segundo.
- Use o dimensionador automático de cluster e o dimensionamento para zero para escalabilidade previsível usando nós de trabalho baseados em VM.
- Habilite o dimensionador automático de cluster para atender às demandas do aplicativo.
- Você pode habilitar o dimensionamento automático para seus pools de vários nós.
- Habilite o HPA (dimensionador automático de pod horizontal) para atenuar as horas de pico do seu aplicativo.
- Todos os contêineres e pods precisam ter limites e solicitações de recurso definidos.
- O HPA dimensiona automaticamente o número de pods com base em limites de recursos observados, como CPU/memória ou métricas personalizadas.
- Habilite o Azure Monitor para contêineres e o monitoramento dinâmico para monitorar a utilização de cluster e de carga de trabalho.
- Use vários pools de nós quando seus aplicativos tiverem requisitos de recursos diferentes.
- Lembre-se de que você pode especificar um tamanho de VM para um pool de nós.
- Considere usar pools de nós baseados em VM spot para cargas de trabalho não sensíveis a tempo que podem lidar com interrupções e remoções.