4
respostas

problema com o app.yaml

Não sei o que acontece, mas quando dou o apply no app.yaml tudo congela.. consumo da CPU e escrita vão pro espaço, batendo até 100%. Tentei com a imagem que gerei, e com a imagem que o instrutor gerou. Tentei tambem limitar pra 1 pod e limitar os resources, mas assim que subo o pod da aplicação, tudo trava. Não consigo debugar nem ver log, porque o kubectl para de responder por causa de timeout. Os arquivos yaml peguei todos de novo do repositório, então estão todos exatamente iguais ao do repo

uma vez que subo, unica forma de destravar o computador é derrubar o minikube, e não posso subir mais... já testei subindo só o Mysql, e funciona tudo certo. Pod compila e funciona tudo bem. Se subir SÓ o app.yaml, já é suficiente pra travar...

Não sei se está com alguma fuga de memoria ou se está fazendo algum processo sem parar..

minha maquina é forte, (64 ram, i7 16 cpus), então não faço ideia o porque isso acontece. estou suspeitando de algum problema com a aplicação em si

4 respostas

Kustomize Version: v5.0.1 docker 4.42

Ola!

A aplicação dentro do container está com loop infinito, vazamento de memória ou algum processo que consome todos os recursos rapidamente.

Limite de recursos no app.yaml Verifique se o pod tem recursos limitados:

resources:
  limits:
    cpu: "500m"
    memory: "256Mi"
  requests:
    cpu: "200m"
    memory: "128Mi"

Isso evita que o container trave todo o cluster.

Executar a imagem manualmente no Docker Teste localmente fora do Kubernetes:

docker run -it --rm <nome-da-imagem>

Se travar ou consumir muitos recursos, o problema está no código da aplicação.

Verificar o comportamento inicial da aplicação Pode haver código que entra em loop ou abre threads/processos indefinidamente.

Aplicar em dry-run primeiro Para evitar o travamento:

kubectl apply --dry-run=client -f app.yaml

Verificar logs do pod rapidamente Se conseguir antes do travamento:

kubectl logs -f <nome-do-pod>

Se quiser, envie seu app.yaml ou o Dockerfile da aplicação.

tentei a limitação do recurso, não funcionou... rodei a imagem direto pelo docker, sem ser pelo minikube.. ai não trava, mas ela fica reiniciando sem parar. pelo que vi, é pq no npm start tem um watch, e esta fazendo a a aplicação rebuildar sem parar. mudei o start e estou buildando a imagem de novo, mas agora só vou conseguir testar amanhã

Alem de ficar rebuildando, o liveness check bate no pacientes, e não tem nada no banco de dados, então ele devolve um 404 o que faz o pod ficar sendo derrubado e subindo... tirei o minicube e atualizei a configuração do banco de dados pro kubernetes sem o minikube, e agora esta funcionando, e tambei tirei o watch da build... agora não fica mais recriando sem parar os pods, mas como o banco de dados ta vazio, tive que comentar o healthcheck