Bom dia Sheila, esse tipo de cenário costuma ser menos “comando desatualizado” e mais configuração desalinhada entre app, probe e rede. Vamos organizar isso com calma.
Primeiro ponto importante: se ao comentar a livenessProbe os pods ficam verdes e a aplicação volta a responder, é um sinal forte de que a probe está reiniciando o container, não necessariamente que o Kubernetes mudou algo “moderno”. A API de httpGet e tcpSocket não sofreu mudança recente que quebre comportamento básico.
Agora vamos por partes.
Se você trocou de httpGet para tcpSocket e o pod fica verde mas a requisição continua dando timeout (inclusive no Insomnia), isso indica que:
- O container está de pé (porta aberta → tcpSocket passa).
- Mas a aplicação pode não estar respondendo corretamente na rota que você está chamando.
- Ou o problema não é a probe, e sim rede (Service, porta, Istio, etc).
Sobre a livenessProbe:
Com httpGet, você precisa garantir:
path realmente existe (ex: /health, /actuator/health, /)port é a porta interna do container, não do Service- A aplicação responde rápido o suficiente para não estourar
timeoutSeconds - Se sua API exige autenticação, a probe não pode bater numa rota protegida
Se sua aplicação demora para subir, você deveria usar também:
initialDelaySecondsfailureThresholdperiodSeconds
Sem isso, o Kubernetes pode começar a testar antes da aplicação estar pronta e entrar em ciclo de restart.
Exemplo típico que evita dor de cabeça:
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 2
failureThreshold: 3
Agora sobre o erro 201 que você mencionou.
Liveness probe não espera 201. Ela espera qualquer código 200–399. Se você está testando uma rota de criação (POST) e esperando 201, isso é outro fluxo não tem relação direta com a probe.
Se no capítulo de backup o teste de requisição está dando timeout, pode ser:
- Service apontando para porta errada.
- TargetPort diferente da porta real do container.
- Istio interferindo.
Sobre Istio: sim, pode influenciar. Se estiver usando sidecar injection:
- A probe HTTP pode estar sendo interceptada.
- Em alguns casos é necessário configurar
rewriteAppHTTPProbers: true na annotation do pod.
Exemplo:
metadata:
annotations:
sidecar.istio.io/rewriteAppHTTPProbers: "true"
Se estiver com Istio habilitado e não configurar isso, a probe pode falhar mesmo com app saudável.
Eu faria essa sequência de diagnóstico:
kubectl describe pod <nome> → veja eventos. Está reiniciando? Por quê?kubectl logs <pod> → a aplicação está crashando?kubectl port-forward pod/<pod> 8080:3000 e testa localmente.- Confere se o Service está mapeando corretamente
port e targetPort. - Se tiver Istio, verifica se há sidecar no pod (
kubectl get pod -o wide).
Resumo honesto: não parece mudança “moderna” de livenessProbe. Parece desalinhamento entre rota/porta/probe ou interferência de mesh.
Se você quiser, me manda:
- Seu trecho de Deployment (parte das probes)
- Porta que sua aplicação sobe
- Trecho do Service
- Se está usando Istio ou não
A gente desmonta isso passo a passo e resolve.