Logging
Logging is one option to understand what is going on inside your applications and the cluster at large. Basic logging in Kubernetes makes the output a container produces available through the kubectl tool. More advanced setups consider logs across nodes and store them in a central place, either within the cluster or via a dedicated (cloud-based) service.
Let's create a pod called logme
that runs a container writing to stdout and stderr:
kubectl apply -f https://raw.githubusercontent.com/openshift-evangelists/kbe/main/specs/logging/pod.yaml
To view the five most recent log lines of the gen
container in the logme
pod, execute:
kubectl logs --tail=5 logme -c gen
Streaming functionality, similar to running tail -f
, is available as well:
kubectl logs -f --since=10s logme -c gen
Note that if you didn't specify --since=10s
in the above command, you would have gotten all of the log lines from the start of the container.
oneshot
that counts down from 9 to 1 and then exits:
kubectl apply -f https://raw.githubusercontent.com/openshift-evangelists/kbe/main/specs/logging/oneshotpod.yaml
By using the -p
option, you can print the logs for previous instances of the container in a pod:
kubectl logs -p oneshot -c gen
You can remove the created pods with:
kubectl delete pod/logme pod/oneshot