管理Kubernetes日志
概述
日志是我们在运维部署当中非常重要的一个东西,对于我个人工作经验而言,一般出现问题,第一步事情就是查看日志,其次是服务器资源查看这样去定位问题,那么在kubernets集群当中呢,我主要给其分了两种类型:
- kubernetes组件日志
- 运行于kubernetes上的容器应用日志
kubernetes组件日志
我们知道在kubernetes集群是有多个组件组成,协同为我们提供一个运行容器的环境。当运行当中出现问题,也是需要查看对应组件的日志,进行问题排查、处理。那么常见的日志如下:
1 | /var/log/kube-apiserver.log |
当然根据搭建集群的方式不同,我们配置的日志目录也不尽相同,所以只是列举一下;
如果组件的安装方式由systemd来管理的话 我们还可以通过以下命令进行排错
1 | journalctl -u kubelet |
如果使用的是kuernetes插件式方式部署的组件则使用以下命令
1 | kubectl logs -f <组件名称> |
运行于kubernetes上的容器应用日志
运行于kubernetes上的,比如一个nginx容器;我们如何查看这个应用的日志呢?
从容器标准输出截获
用法类似于docker
1 | kubectl logs -f {POD_NAME} -c {Container_NAME} |
进入容器进行查看
1 | kubectl exec -it {POD_NAME} -c {Container_NAME} /bin/sh |
将日志文件挂载到主机目录
比如我要把nginx的日志挂载到运行于该POD的宿主机的某个目录
1 | # 编写yaml文件 |
注意点: 写yaml的时候一定要养成导出现有资源类型的yaml的习惯再去修改;这样能避免手动编写时格式的一些问题,如果关键字记不住那就一定要用kubectl explain
获取资源文档
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 OpsThoughts!