--- --- {% capture overview %} This page shows how to write and read a Container termination message. Termination messages provide a way for containers to write information about fatal events to a location where it can be easily retrieved and surfaced by tools like dashboards and monitoring software. In most cases, information that you put in a termination message should also be written to the general [Kubernetes logs](/docs/user-guide/logging/). {% endcapture %} {% capture prerequisites %} {% include task-tutorial-prereqs.md %} {% endcapture %} {% capture steps %} ### Writing and reading a termination message In this exercise, you create a Pod that runs one container. The configuration file specifies a command that runs when the container starts. {% include code.html language="yaml" file="termination.yaml" ghlink="/docs/tasks/debug-pod-container/termination.yaml" %} 1. Create a Pod based on the YAML configuration file: export REPO=https://raw.githubusercontent.com/kubernetes/kubernetes.github.io/master kubectl create -f $REPO/docs/tasks/debug-pod-container/termination.yaml In the YAML file, in the `cmd` and `args` fields, you can see that the container sleeps for 10 seconds and then writes "Sleep expired" to the `/dev/termination-log` file. After the container writes the "Sleep expired" message, it terminates. 1. Display information about the Pod: kubectl get pod termination-demo Repeat the preceding command until the Pod is no longer running. 1. Display detailed information about the Pod: kubectl get pod --output=yaml The output includes the "Sleep expired" message: apiVersion: v1 kind: Pod ... lastState: terminated: containerID: ... exitCode: 0 finishedAt: ... message: | Sleep expired ... 1. Use a Go template to filter the output so that it includes only the termination message: ``` {% raw %} kubectl get pod termination-demo -o go-template="{{range .status.containerStatuses}}{{.lastState.terminated.message}}{{end}}"{% endraw %} ``` ### Setting the termination log file By default Kubernetes retrieves termination messages from `/dev/termination-log`. To change this to a different file, specify a `terminationMessagePath` field for your Container. For example, suppose your Container writes termination messages to `/tmp/my-log`, and you want Kubernetes to retrieve those messages. Set `terminationMessagePath` as shown here: apiVersion: v1 kind: Pod metadata: name: msg-path-demo spec: containers: - name: msg-path-demo-container image: debian terminationMessagePath: "/tmp/my-log" {% endcapture %} {% capture whatsnext %} * See the `terminationMessagePath` field in [Container](/docs/api-reference/v1/definitions#_v1_container). * Learn about [retrieving logs](/docs/user-guide/logging/). * Learn about [Go templates](https://golang.org/pkg/text/template/). {% endcapture %} {% include templates/task.md %}