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"
),提升運維效率。