This topic created in 2068 days ago, the information mentioned may be changed or developed.
在一些条件下,服务进程可能会异常退出。在传统部署模式下,首先做的一件事,是登到服务器上看日志
但是用了 Kubernetes,容器会被自动销毁,然后等待一段时间后再重建,这样就没法及时取得日志了
一个显而易见的解决方法,是让服务检测机制临时失效,让问题重现一次,等调试和修复工作完成后,再让检测机制重新生效;当然也可以日志上云,这样实际上就绕过了原问题
请问还有什么更好的解法吗?
7 replies • 2020-10-17 14:22:04 +08:00
 |
|
1
ManjusakaL Oct 9, 2020
容器的话 stdout/stderr 输出的日志可以搜集到 ELK 或者其余后端存储
|
 |
|
3
fuis Oct 9, 2020
日志管理直接上 ELK 。 “让服务检测机制临时失效” 可以通过修改 YAML 实现,比如让 probes 返回正常,在 command args 里用 bash -c "your-service; tail -f /dev/null" 等待
|
 |
|
4
joesonw Oct 10, 2020
容器 runtime 会有日志呀. 例如 docker, 可以 json 模式写在磁盘里, 或者到 syslog, journald 等等.
把 docker 日志改成 json 模式, 然后用 daemonSet 去采集.
|
 |
|
5
anubu Oct 10, 2020
标准方法就是借助日志系统或其他方式对日志收集和转储;临时使用场景,如果不是 Pod 重启(重建)而是 Pod 里面某一个容器重启(重建),可以试试 kubectl logs 命令查看,kubectl logs deployment/nginx -c nginx-1 --previous
|
 |
|
6
jejer Oct 13, 2020
kubectl logs -p 取上一次 log
|