Why is OOMKilled pod not getting ready when rescheduled?

4/18/2020

I have a error with unhealty pod even though I think the pod works as expected after reschduling. If I restart (delete) it, it becomes ready but I would like to understand why it ends up in a unhealty state.

My probe is simple as this:

readinessProbe:
  httpGet:
    path: /
    port: 4000
  initialDelaySeconds: 30
  periodSeconds: 30

Events:

  Type     Reason     Age                   From                                        Message
  ----     ------     ----                  ----                                        -------
  Warning  Unhealthy  99s (x2253 over 35h)  kubelet, aks-nodepool1-23887969-vmss000000  Readiness probe failed: Get http://10.244.0.142:4000/: net/http: request canceled (Client.Timeout exceeded while awaiting headers)

State & Last state

  State:          Running
      Started:      Fri, 17 Apr 2020 19:44:58 +0200
    Last State:     Terminated
      Reason:       OOMKilled
      Exit Code:    1
      Started:      Fri, 17 Apr 2020 00:20:31 +0200
      Finished:     Fri, 17 Apr 2020 19:44:56 +0200
    Ready:          False

If I run

 kubectl exec -t other pod -- curl -I 10.244.0.142:4000/

I get 200 OK

Can someone explain why pod not gets ready? I guess it has something to do with OOMKilled because of Memory limit, and that should be fixed. But I would like to understand why it doesn´t restart propery.

-- Glenn
kubernetes

1 Answer

4/18/2020

Oomkilled is the previous state. The current state is running (Ready). The problem is the readiness probe.

-- coderanger
Source: StackOverflow