Ubuntu K8S日志管理技巧
kubectl logs <pod-name>;若Pod有多个容器,需通过-c <container-name>指定容器(如kubectl logs my-pod -c nginx);可添加-f参数实时跟踪日志(类似tail -f),--tail=100查看最后100行(避免日志过多)。/var/log/containers或Docker日志目录读取)。优点是统一管理、资源利用率高,适合大规模集群。apt-get install logrotate -y;配置示例(针对应用日志):在/etc/logrotate.d/下创建配置文件(如myapp),内容如下:/path/to/app/logs/*.log {
size 100M # 日志文件达到100MB时轮转
rotate 10 # 保留最近10个轮转文件
compress # 压缩旧日志(如.gz格式)
delaycompress # 延迟压缩(避免影响当前日志写入)
missingok # 日志文件不存在时不报错
notifempty # 日志为空时不轮转
}
Logrotate可通过Cron定时任务(如每天凌晨)自动执行。query_string查询、Loki的{job="nginx"}标签过滤),快速定位问题(如应用错误日志level=error)。500 Internal Server Error,发送邮件或Slack通知),及时响应异常。kubetail app-name),支持彩色输出(区分不同Pod/容器)、正则表达式过滤(如kubetail "app.*demo"),提升运维效率。