欢迎光临
我们一直在努力

Kubernetes node为何总是自动重启?

了解Kubernetes的人都知道,我们要想在Kubernetes中创建一个Deployment 部署,就会在Node上创建一个Pod,Pod是Kubernetes中对于一组容器以及与容器相关的资源的集合。Pod中的容器会共享IP和端口资源。而Pod总是运行在Node上,Node可以是物理机也可以是虚拟机。

但是,很多开发者都会遇到这样一个问题,Kubernetes node总是自己重启,到底是什么原因导致的呢?如何查找具体的问题点?

有相关经验的人,第一反应是看log。

在生产环境中,使用kubectl命令是可以查看pod的log的;但是查看log很不方便。容器针对标准输出和标准错误的log都是落盘了的,如果使用kubernetes管理,还需要去每个container查看磁盘上的日志。所在,在实际生产环境中,我们需要使用官方推荐的elasticsearch+kibana。

和docker一样,Kubernetes在日志这一块的支持主要还是在标准输出上。比较通用的做法是用ELK这套东西来操作。首先,在创建pod的时候,就把宿主机的某个目录映射上去,pod写日志到这个目录下。其次,在宿主机上运行一个单独的搜集日志的进程(logstash,fluentd),对这个目录树下的日志做统一收集,然后发送到远程的日志服务器上去。 

docker daemon –log-driver可以修改日志输出,比如输出给syslog 这样的日志收集工具。syslog可以通过TCP协议将日志发给logstash,再结合elasticsearch+kibana,就是一套日志收集系统了。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。