Como resolver problemas de escalonamento do Istio no Cloud Service Mesh

Nesta seção, explicamos problemas comuns do Cloud Service Mesh e como resolvê-los. Se você precisar de mais ajuda, consulte Como receber suporte.

Fatores de escalonamento

Istiod (link em inglês) envia a configuração para cada arquivo secundário usando um stream gRPC de longa duração. Ele tem várias características que afetam o escalonamento:

  • O tamanho da configuração a ser gerada:
    • Número total de serviços/pods e recursos do Istio
    • Para larga escala, ajuste as configurações do Sidecar para reduzir o tamanho da configuração.
  • A taxa de alteração no ambiente:
    • Quando um novo serviço é criado ou a configuração do Istio é alterada, as atualizações completas são enviadas aos proxies.
    • A adição de novos endpoints não é cara porque apenas atualizações incrementais são enviadas.
  • O número de proxies para que a configuração é gerada:
    • Afetados pelo número de gateways e pods com um sidecar.

Considerações de escalonamento

O Istio é escalonado verticalmente corretamente (solicitações grandes) e horizontalmente (mais réplicas). Verifique se os limites da CPU não são muito restritivos. Se o Istio atingir o limite de CPU, poderá haver uma diminuição que afeta a distribuição da configuração de forma negativa. Se você tiver problemas de desempenho, considere fazendo upgrade para a versão mais recente do Cloud Service Mesh, já que cada uma e otimizar o desempenho.

Carga não balanceada

Grandes mudanças no tamanho do cluster podem causar uma carga temporariamente desalocada devido às conexões de longa duração. Isso é minimizado por uma idade máxima de conexão de 30 minutos, o que pode resultar em mensagens de erro no Envoy, como gRPC config stream closed: 13, que permite que a carga seja rebalanceada naturalmente.

Reduza esse problema com várias réplicas do Istio (o padrão é duas réplicas) e faça o pré-escalonamento se você espera aumentar o número de escalonamentos verticais.