21

I have a single node kubernetes cluster in google container engine to play around with.

Twice now, a small personal website I host in it has gone offline for a couple minutes. When I view the logs of the container, I see the normal startup sequence recently completed, so I assume a container died (or was killed?) and restarted.

How can I figure out the how & why of this happening?

Is there a way to get an alert whenever a container starts/stops unexpectedly?

28

You can view the last restart logs of a container using:

kubectl logs podname -c containername --previous

As described by Sreekanth, kubectl get pods should show you number of restarts, but you can also run

kubectl describe pod podname

And it will show you events sent by the kubelet to the apiserver about the lifecycled events of the pod.

You can also write a final message to /dev/termination-log, and this will show up as described in the docs.

8

kubectl get pods will actually list any restarts of the container also the describe command can be of help cause it lists any events associated with the pod.

Liveness probes and readiness probes can be configured for better handling http://kubernetes.io/v1.0/docs/user-guide/production-pods.html#liveness-and-readiness-probes-aka-health-checks

Additionally hooks can be configured to be consumed in the container at specific points in the life cycle of the container https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/

  • Please expand the links into the answer. Otherwise -1. :) – Konrad Gajewski Oct 22 '15 at 11:24
7

Beside the previous answers another command that helped me to find an error is:

kubectl get event [--namespace=my-namespace]

It lists events from Pods, Jobs, Nodes too

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.