Considerações de escalabilidade para ambientes de Azure Kubernetes Service

Azure Kubernetes Service (AKS) podem ser dimensionados e reduzidos consoante as necessidades de infraestrutura (que requerem mais ou menos capacidade), adicionar conjuntos de nós com capacidades especiais, como GPU ou necessidades de aplicações, neste caso tem vários fatores, como número e taxa de ligações simultâneas, número de pedidos, latências de back-end em aplicações AKS.

As opções de escalabilidade mais comuns para o AKS são o dimensionador automático de clusters e o dimensionador automático de pods horizontal. O dimensionador automático do cluster ajusta o número de nós com base nos recursos de computação pedidos no conjunto de nós. O dimensionador automático de pods horizontal (HPA) ajusta o número de pods numa implementação, dependendo da utilização da CPU ou de outras métricas configuradas.

Considerações de design

Eis alguns fatores cruciais a considerar:

  • A escalabilidade rápida é um requisito para a sua aplicação (sem tempo de espera)?

    • Para que um aprovisionamento rápido de pods utilize nós virtuais, estes só são suportados com nós/pods do Linux.
  • A carga de trabalho não é sensível ao tempo e consegue lidar com interrupções? Considerar a utilização de VMs Spot

  • A infraestrutura subjacente (plug-in de rede, intervalos de IP, limites de subscrição, quotas, etc.) é capaz de aumentar horizontalmente?

  • Considere automatizar a escalabilidade

  • Considerar a escalabilidade com múltiplos conjuntos de nós e multizona

    • Ao criar conjuntos de nós, considere definir Zonas de Disponibilidade com o AKS.
    • Considere utilizar vários conjuntos de nós para suportar aplicações com requisitos diferentes.
    • Dimensionar conjuntos de nós com o dimensionador automático de clusters.
    • Pode dimensionar para zero os conjuntos de nós de utilizador. Veja as limitações.

Recomendações de conceção

Siga estas melhores práticas para a sua conceção:

  • Utilize conjuntos de dimensionamento de máquinas virtuais (VMSS), que são necessários para cenários como o dimensionamento automático, múltiplos conjuntos de nós e suporte do conjunto de nós do Windows.
    • Não ative ou edite manualmente as definições de escalabilidade do VMSS no portal do Azure ou com a CLI do Azure. Em vez disso, utilize o dimensionador automático de clusters.
  • Se precisar de dimensionamento automático de rajada rápida, opte por rebentar a partir do cluster do AKS com Azure Container Instances e nós virtuais para uma escalabilidade rápida e infinita e faturação por segundo.
  • Utilize o dimensionador automático de clusters e dimensionamento para zero para escalabilidade previsível com nós de trabalho baseados em VMs.
  • Ative o dimensionador automático de clusters para satisfazer as exigências da aplicação.
  • Ative o dimensionador automático de pods horizontal (HPA) para mitigar as horas de trabalho da sua aplicação.
    • Todos os seus contentores e pods têm de ter pedidos de recursos e limites definidos.
    • O HPA dimensiona automaticamente o número de pods com base nos limites de recursos observados cpU/memória ou métricas personalizadas.
  • Ative o Azure Monitor para contentores e monitorização em direto para monitorizar a utilização do cluster e da carga de trabalho.
  • Utilize múltiplos conjuntos de nós quando as aplicações tiverem requisitos de recursos diferentes.
  • Considere conjuntos de nós baseados em VM spot para cargas de trabalho não sensíveis ao tempo que possam lidar com interrupções e expulsões.