How to truncate kubernetes pod's log?

10/14/2019

I download a pod's log, it has size bigger then 1G, how to shrike/truncate the pod's log? so I can download it faster?

PS: I need erase the old part of logs so I can free the disk space

-- Yu Jiaao
kubernetes
logging

2 Answers

10/14/2019

kubectl logs --tail=1000 to show only the most recent 1000 lines. Adjust as needed.

--tail=-1: Lines of recent log file to display. Defaults to -1 with no selector, showing all log lines otherwise 10, if a selector is provided.

-- coderanger
Source: StackOverflow

10/14/2019

Also to add to Coderangers answer if you want a time based truncate. This is how you can get the last 1 hour's logs.

kubectl logs --since=1h nginx

Shows all logs from pod nginx written in the last hour.


Update Post Comment.

The pod and container logs are stored in respective applications paths. Refer to this answer. https://stackoverflow.com/a/50872881/5617140

Another solution is the truncation of the docker logs in each for your kubernetes nodes.

sudo sh -c "du -ch /var/lib/docker/containers/*/*-json.log | grep total"
This will give total size of docker logs.

sudo sh -c "truncate -s 0 /var/lib/docker/containers/*/*-json.log"
Above command will truncate all the log files. 

Note* - This is a workaround solution. Make sure you backup the important logs before doing this.

-- damitj07
Source: StackOverflow