Resolver problemas de escalabilidade do Istiod na malha de serviços na nuvem
Esta secção explica os problemas comuns do Cloud Service Mesh e como os resolver. Se precisar de assistência adicional, consulte a secção Receber apoio técnico.
Fatores de escalabilidade
O Istiod envia a configuração a cada sidecar através de uma stream gRPC de longa duração. Tem várias caraterísticas que afetam o dimensionamento:
- O tamanho da configuração a gerar:
- Número total de serviços/pods e recursos do Istio
- Para uma grande escala, ajuste as definições do Sidecar para reduzir o tamanho da configuração.
- A taxa de alteração no ambiente:
- Quando é criado um novo serviço ou a configuração do Istio é alterada, são enviadas atualizações completas aos proxies.
- A adição de novos pontos finais é barata para o desempenho, porque apenas são enviadas atualizações incrementais.
- O número de proxies para os quais a configuração é gerada:
- Afetado pelo número de gateways e pods com um sidecar.
Considerações sobre o dimensionamento
O Istiod é bem dimensionado verticalmente (pedidos grandes) e horizontalmente (mais réplicas). Certifique-se de que os limites da CPU não são demasiado restritivos. Se o Istiod atingir o limite da CPU, pode ocorrer uma limitação, o que afeta negativamente a distribuição da configuração. Se tiver problemas de desempenho, pondere atualizar para a versão mais recente da Cloud Service Mesh, uma vez que cada versão tem otimizações de desempenho.
Carga desequilibrada
As alterações significativas no tamanho do cluster podem causar uma carga temporariamente desequilibrada devido às ligações de longa duração. Isto é mitigado por um tempo máximo de ligação de 30 minutos, o que pode resultar em mensagens de erro no Envoy, como gRPC config stream
closed: 13
, o que permite que a carga seja reequilibrada naturalmente.
Mitigue este problema tendo várias réplicas do Istiod (o valor predefinido é 2 réplicas) e pré-dimensionando se esperar dimensionamentos extremos do cluster.