Resolver problemas de limites de recursos na Cloud Service Mesh
Esta secção explica os problemas comuns do Cloud Service Mesh e como os resolver. Se precisar de assistência adicional, consulte o artigo Receber apoio técnico.
Os problemas de limite de recursos da Cloud Service Mesh podem ser causados por qualquer um dos seguintes motivos:
- Objetos
LimitRange
criados no espaço de nomesistio-system
ou em qualquer espaço de nomes com injeção automática de sidecar ativada. - Limites definidos pelo utilizador que estão demasiado baixos.
- Os nós ficam sem memória ou outros recursos.
Potenciais sintomas de problemas de recursos:
- O Cloud Service Mesh não está a receber repetidamente a configuração de
istiod
, conforme indicado pelo erroEnvoy proxy NOT ready
. Ver este erro algumas vezes no arranque é normal, mas, caso contrário, é preocupante. - Problemas de rede com alguns pods ou nós que ficam inacessíveis.
istioctl proxy-status
a mostrarSTALE
estados na saída.OOMKilled
mensagens nos registos de um nó.- Utilização de memória por contentores:
kubectl top pod POD_NAME --containers
. - Utilização de memória por agrupamentos num nó:
kubectl top node my-node
. - Envoy sem memória:
kubectl get pods
mostra o estadoOOMKilled
na saída.
Os sidecars do Istio demoram muito tempo a receber a configuração
A propagação lenta da configuração pode ocorrer devido a recursos insuficientes atribuídos ao istiod
ou a um tamanho do cluster excessivamente grande.
Existem várias soluções possíveis para este problema:
Se as suas ferramentas de monitorização (prometheus, stackdriver, etc.) mostrarem uma utilização elevada de um recurso por parte do
istiod
, aumente a atribuição desse recurso, por exemplo, aumente o limite de CPU ou memória da implementação doistiod
. Esta é uma solução temporária e recomendamos que investigue métodos para reduzir o consumo de recursos.Se encontrar este problema num cluster/implementação grande, reduza a quantidade de estado de configuração enviado para cada proxy configurando recursos do Sidecar.
Se o problema persistir, experimente dimensionar horizontalmente o
istiod
.Se todos os outros passos de resolução de problemas não resolverem o problema, comunique um erro com detalhes sobre a implementação e os problemas observados. Siga estes passos para incluir um perfil de CPU/memória no relatório de erro, se possível, juntamente com uma descrição detalhada do tamanho do cluster, do número de pods, do número de serviços, etc.