Como resolver problemas de escalonamento do Istio no Cloud Service Mesh
Nesta seção, explicamos problemas comuns do Cloud Service Mesh e como resolver para resolvê-los com rapidez. 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
- Em grande 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.