【K8S系列】如何高效查看 k8s日志
序言
你只管努力,其他交给时间,时间会证明一切。
文章标记颜色说明:
- 黄色:重要标题
- 红色:用来标记结论
- 绿色:用来标记一级论点
- 蓝色:用来标记二级论点
Kubernetes (k8s) 是一个容器编排平台,允许在容器中运行应用程序和服务。今天学习一下k8s日志查看相关方法
希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言和我交流
专栏介绍
这是这篇文章所在的专栏,欢迎订阅:【深入解析k8s】专栏
简单介绍一下这个专栏要做的事:
主要是深入解析每个知识点,帮助大家完全掌握k8s,以下是已更新的章节
这是专栏介绍文章地址:【深入解析K8S专栏介绍】
今天我们来看一下K8s 日志相关问题
- 日志类型
- 查看日志的方法
1日志类型
在 Kubernetes(简称为 k8s)中,主要有以下几种类型的日志:
- 容器日志
- Kubernetes 系统组件日志
- Fluentd 日志
- Sidecar 容器日志
- Init 容器日志
- 系统日志
1.1 容器日志
在 Kubernetes 中,每个容器都有一个对应的日志文件,用于存储容器的日志输出。
容器的标准输出和标准错误输出会被重定向到容器的日志文件中,可以通过在节点上查看容器的日志文件来查看容器的日志输出。
容器日志通常包括容器的启动日志、应用程序输出日志和错误日志等。
1.2 Kubernetes 系统组件日志
在 Kubernetes 中,还有一些系统组件,例如 kube-apiserver、kube-controller-manager、kube-scheduler 等,它们也会产生日志输出。
这些组件的日志输出通常包括组件的启动日志、操作日志和错误日志等。
1.3 Fluentd 日志
Fluentd 是 Kubernetes 中的一个日志收集器,用于收集容器的日志输出。
Fluentd 可以从容器的标准输出和标准错误输出中收集日志,并将其发送到指定的目标(例如 Elasticsearch、Kafka 等)。
Fluentd 的日志输出通常包括收集到的日志数据和发送到目标的日志数据等。
1.4 Sidecar 容器日志
在 Kubernetes 中,有一种常见的模式是使用 Sidecar 容器来扩展主容器的功能。
Sidecar 容器通常用于收集主容器的日志输出、监控主容器的运行情况、提供额外的服务等。
Sidecar 容器的日志输出通常包括主容器的日志数据和 Sidecar 容器自身的日志数据等。
1.5 Init 容器日志
在 Kubernetes 中,可以使用 Init 容器来执行启动任务或初始化任务。
Init 容器通常在主容器启动之前运行,用于准备容器的环境、配置文件等。
Init 容器的日志输出通常包括初始化任务的日志数据和主容器的启动日志等。
1.6 系统日志
除了容器和 Kubernetes 系统组件的日志外,节点上还会产生系统日志,例如操作系统的日志、网络日志等。
这些日志数据通常包含节点的运行情况、硬件故障、网络问题等信息,对于排查节点级别的问题非常有用。
2 查看日志的方法
在 Kubernetes 中,容器的日志输出非常重要,可以帮助我们监控和调试应用程序的运行情况。
下面是一些高效查看 Kubernetes 日志的方法:
- 使用 kubectl logs 命令
- 使用 kubectl logs 命令查看多个容器
- 使用 kubectl logs 命令查看最新的日志
- 使用 kubectl logs 命令查看时间戳
- 使用 kubectl logs 命令查看前 n 行日志
- 使用 kubectl logs 命令查看特定时间段的日志
- 使用 kubectl logs 命令查看多个 Pod 的日志
- 使用 kubectl logs 命令查看多个容器的日志
- 使用 Kubernetes Dashboard
- 使用第三方工具
2.1 使用 kubectl logs 命令
kubectl logs 命令可以用于查看 Kubernetes Pod 的日志输出。使用该命令时,需要指定 Pod 的名称和容器的名称。
例如,要查看名为 my-pod 中名为 my-container 的容器的日志,可以执行以下命令:
kubectl logs my-pod my-container
该命令会输出容器的日志输出,包括标准输出和标准错误输出。
2.2 使用 kubectl logs 命令查看多个容器
如果 Pod 中有多个容器,可以使用 kubectl logs 命令来查看多个容器的日志输出。可以使用 -c 选项来指定容器的名称。
例如,要查看名为 my-pod 中名为 my-container1 和 my-container2 的容器的日志,可以执行以下命令:
kubectl logs my-pod -c my-container1 kubectl logs my-pod -c my-container2
2.3 使用 kubectl logs 命令查看最新的日志
如果只想查看最新的日志输出,可以使用 -f 选项来实时查看容器的日志输出。
例如,要查看名为 my-pod 中名为 my-container 的容器的最新日志输出,可以执行以下命令:
kubectl logs -f my-pod my-container
该命令会实时输出容器的日志输出,直到手动停止输出。
2.4 使用 kubectl logs 命令查看时间戳
如果想查看日志输出的时间戳,可以使用 -t 选项来打印时间戳。
例如,要查看名为 my-pod 中名为 my-container 的容器的日志输出,并打印时间戳,可以执行以下命令:
kubectl logs -t my-pod my-container
2.5 使用 kubectl logs 命令查看前 n 行日志
如果只想查看日志输出的前 n 行,可以使用 --tail 选项来指定输出的行数。
例如,要查看名为 my-pod 中名为 my-container 的容器的前 10 行日志输出,可以执行以下命令:
kubectl logs --tail=10 my-pod my-container
2.6 使用 kubectl logs 命令查看特定时间段的日志
如果想查看特定时间段内的日志输出,可以使用 --since 和 --until 选项来指定时间段。
例如,要查看名为 my-pod 中名为 my-container 的容器在 2022 年 1 月 1 日至 2022 年 1 月 2 日期间的日志输出,可以执行以下命令:
kubectl logs --since="2022-01-01T00:00:00Z" --until="2022-01-02T00:00:00Z" my-pod my-container
2.7 使用 kubectl logs 命令查看多个 Pod 的日志
如果需要同时查看多个 Pod 的日志输出,可以使用 kubectl logs 命令的 -l 选项来指定 Pod 的标签选择器。例如,要查看标签为 app=my-app 的所有 Pod 的名为 my-container 的容器的日志输出,可以执行以下命令:
kubectl logs -l app=my-app -c my-container
该命令会输出所有包含 app=my-app 标签的 Pod 中名为 my-container 的容器的日志输出。
2.8 使用 kubectl logs 命令查看多个容器的日志
如果你需要同时查看多个容器的日志输出,可以使用 kubectl logs 命令的 -f 和 -c 选项来实时查看多个容器的日志输出。例如,要实时查看名为 my-pod 中名为 my-container1 和 my-container2 的容器的日志输出,可以执行以下命令:
kubectl logs -f my-pod -c my-container1 -c my-container2
该命令会实时输出名为 my-pod 中名为 my-container1 和 my-container2 的容器的日志输出。
2.9 使用 Kubernetes Dashboard
如果你使用 Kubernetes Dashboard 来管理 Kubernetes 集群,那么可以使用 Dashboard 来查看容器的日志输出。Dashboard 是一个基于 Web 的 Kubernetes 管理界面,可以帮助你更方便地管理和监控 Kubernetes 集群。
在 Dashboard 中,可以轻松地查看 Pod 的日志输出,包括标准输出和标准错误输出。你可以通过单击 Pod 的名称,在 Pod 详情页中查看日志输出。
2.10 使用第三方工具
除了 kubectl logs 命令外,还有一些第三方工具可以用于查看 Kubernetes 日志,例如 Elasticsearch、Fluentd、Kibana、Prometheus、Grafana 等。
这些工具可以帮助你更加方便地查看和分析 Kubernetes 日志,提高日志分析的效率。
ELK Stack
ELK Stack 是一个常用的日志收集和分析工具,包括 Elasticsearch、Logstash 和 Kibana。在 Kubernetes 中,可以使用 ELK Stack 来收集和分析容器的日志输出。
Logstash 用于收集容器的日志输出,并将其发送到 Elasticsearch 中,Kibana 用于展示和分析日志数据。
ELK Stack 的日志输出通常包括收集到的日志数据和展示和分析的日志数据等。
3 总结
总之,高效查看 Kubernetes 日志需要选择合适的工具和方法,并且需要根据实际情况进行调整和优化。
在实际使用中,建议使用多种方法来查看 Kubernetes 日志,以便更全面地了解容器的运行情况。
4 投票
【K8S系列】如何高效查看 k8s日志相关推荐
- 如何高效查看 Docker 日志
如何高效查看 Docker 日志 开发基于 Docker的应用时,用好 log 可以大大提高排错效率,下面就是几个常用的 log 操作技巧: 显示所有 log 显示实时 log 使用 tail 查看 ...
- 【K8S系列】深入解析 k8s:入门指南(一)
目录 序言 1.背景介绍 2.前情提要 2.1 架构对比 2.2 容器技术 2.3 容器技术的优点 2.4 容器编排 3 K8S介绍 3.1 K8S是什么 3.2 K8S设计思想 3.3 K8S的优势 ...
- docker 主进程 日志_运维笔记--docker高效查看后台日志
场景描述: 应用程序运行在 Docker环境中, 经常使用的查看后台日志的命令是:docker attach 容器名 该命令优点:实时输出: 不足之处:日志大量输出的时候,屏幕一闪而过,不便于调试, ...
- 【k8s系列十二】k8s 之 Service的类型
svc的类型 ClusterIp:默认类型,自动分配一个仅 Cluster 内部可以访问的虚拟 IP NodePort:在 ClusterIP 基础上为 Service 在每台机器上绑定一个端口,这样 ...
- 【k8s系列4】kubernetes(k8s)的社区与其他开源项目的区别
本文转载自:谈谈Kubernetes开源社区和未来走向 我们知道 Kubernetes 这个项目是托管在 CNCF 基金会下面的.但是,我在专栏最前面讲解容器与 Kubernetes 的发展历史的时候 ...
- vSphere 7 With K8s系列09:部署wordpress示例
目录 vSphere 7 With K8s系列09:部署wordpress示例 wordpress部署说明 部署前的准备 创建PVC 部署mysql 部署wordpress 历史文章 vSphere ...
- K8S查看容器日志、进入容器内部
K8S查看容器日志.进入容器内部 前言 常用命令 查看所有正在运行的pod 查看容器日志 查看pod的详细信息,以yaml格式或json格式显示 查看pod的描述信息 查看node或pod的资源使用情 ...
- vSphere 7 With K8s系列07:客户端工具使用
vSphere 7 With K8s系列07:客户端工具使用 原创 李严省 虚实之路 9月28日 收录于话题 #vSphere with K8s 9个 上一篇文章已经和大家介绍了如何在vSphere7 ...
- 当SRS遇到K8S,快速高效运营直播流媒体集群
K8S 流媒体服务和流媒体服务器的关键差异是什么?高效的运维能力是其中极其关键的差异之一,云计算+Docker+K8S让开源项目也能拥有这种能力,让每个人都能具备互联网流媒体服务能力,正如:旧时王谢堂 ...
最新文章
- Java项目:在线点餐系统(java+Springboot+Maven+mybatis+Vue+mysql+Redis)
- 经典推荐:《Silverlight揭秘》和《ASP.NET 3.5高级程序设计(第2版)》
- 在vue中实现picker样式_基于Vue实现timepicker
- 中国有什么拿得出手的开源软件产品?|原力计划
- 计算机打印病历格式要求,计算机打印病历书写要求
- WindowsMobile配置英文ROM显示中文问题(解决程序中文乱码)
- 【Error】Win10/Python3.9安装dlib报错:subprocess.CalledProcessError以及解决方法
- [原创摄影]西藏行(一)从不同角度看布达拉
- 用 Python 快速追踪基金的收益情况 | Python财经实践
- matlab中options,[转载]Matlab优化函数中options选项的修改
- 华南农业大学汇编语言综合性实验-将自己的姓名用多种颜色动态显示
- centos shell基础 alias 变量单引号 双引号 history 错误重定向 21 jobs 环境变量 .bash_history source配置文件 nohup ...
- MySQL与Oracle主键Query性能测试结果
- 备考H12-221	HCIP-Routing Switching-IERS的一些笔记
- VSC | vscode 常用快捷键
- 趣店季报图解:营收环比降14% 大白汽车收入近6亿
- 计算机毕业设计ssm水果生鲜销售系统7826c系统+程序+源码+lw+远程部署
- 数组如何定义和初始化?
- 微信小游戏个人游戏发布《自省自查报告》
- 线切割泡沫的产生用线切割工作液消泡剂到底有那些效果
热门文章
- 阿里云物联网平台开发学习(一)
- 网络存储技术 期中大作业
- 十二天宫之射手女生篇
- 无线话筒U段和V段有哪些本质区别?
- 人类禁止进入的“微博”,我的AI机器人在那里吹牛,“勾搭”AI小姑娘
- 安卓手机上玩口袋妖怪gba全集的方法
- html清除文本框储存记录值,如何清除edge浏览器中已保存的表单数据
- 基于Java毕业设计校园疫情防控管理软件源码+系统+mysql+lw文档+部署软件
- SYSTEMTIME、FILEITIME、LOCLTIME、UTC、QDateTime等各种时间
- 转战“小家电”后 ,苏泊尔掉队了吗?