Como resolver problemas de escalonamento do Istio no Cloud Service Mesh
Esta seção explica problemas comuns do Cloud Service Mesh e como resolvê-los. Se você precisar de mais ajuda, consulte Como receber suporte.
Fatores de escalonamento
O Istiod envia uma configuração para cada sidecar usando um fluxo 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ê encontrar problemas de desempenho, faça upgrade para a versão mais recente do Cloud Service Mesh, porque cada versão tem otimizações de 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.