Tips and Tricks: Tail Logs in K8S
Wednesday, Sep 29, 2021 15:00 · 243 words · 2 minutes read
Tips and Tricks
Overview
In this blog post I will demonstrate how to tail logs from pods containers in Kubernetes.
Solution
kubectl logs is pretty powerfull command, which allows engineeers to tail logs based on different criterion. I will walk through some of the most commonly used scenarios. There are three really helpful arguments of the kubectl logs command:
--all-containers=false: Get all containers logs in the pod(s).
-c, --container=: Print the logs of this container
-f, --follow=false: Specify if the logs should be streamed.
Specific pod
- return logs from mongodb-1 pod
kubectl logs mongodb-1
- return logs from exporter container from pod redis-1
kubectl logs redis-1 -c exporter
- return logs from pod redis-1 with multi containers
kubectl logs redis-1 --all-containers=true
Pods from given deployment
- streaming the logs from all nginx-ingress-internal-controller deployment’s pods with multi containers, written in the last 3 minutes
kubectl logs deployment/nginx-ingress-internal-controller --all-containers=true --since=3m -f
Pods based on selector
- return logs from pods defined by label name=backend, written in the last 5 minutes
kubectl logs --selector=name=backend --since=5m
More
Additional information and examples how to use the kubectl logs command can be found in its help:
kubectl logs --help
Print the logs for a container in a pod or specified resource. If the pod has only one container, the container name is
optional.
Examples:
# Return snapshot logs from pod nginx with only one container
kubectl logs nginx
...