【K8S系列】如何高效查看 k8s日志

news2024/10/7 16:24:16

序言

你只管努力,其他交给时间,时间会证明一切。

文章标记颜色说明:

  • 黄色:重要标题
  • 红色:用来标记结论
  • 绿色:用来标记一级论点
  • 蓝色:用来标记二级论点

Kubernetes (k8s) 是一个容器编排平台,允许在容器中运行应用程序和服务。今天学习一下k8s日志查看相关方法

希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言和我交流

 专栏介绍

这是这篇文章所在的专栏,欢迎订阅:【深入解析k8s】专栏

简单介绍一下这个专栏要做的事:

主要是深入解析每个知识点,帮助大家完全掌握k8s,以下是已更新的章节

这是专栏介绍文章地址:【深入解析K8S专栏介绍】

今天我们来看一下K8s 日志相关问题

  • 日志类型
  • 查看日志的方法

1日志类型

在 Kubernetes(简称为 k8s)中,主要有以下几种类型的日志:

  1. 容器日志
  2. Kubernetes 系统组件日志
  3. Fluentd 日志
  4. Sidecar 容器日志
  5. Init 容器日志
  6. 系统日志

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 日志的方法:

  1. 使用 kubectl logs 命令
  2. 使用 kubectl logs 命令查看多个容器
  3. 使用 kubectl logs 命令查看最新的日志
  4. 使用 kubectl logs 命令查看时间戳
  5. 使用 kubectl logs 命令查看前 n 行日志
  6. 使用 kubectl logs 命令查看特定时间段的日志
  7. 使用 kubectl logs 命令查看多个 Pod 的日志
  8. 使用 kubectl logs 命令查看多个容器的日志
  9. 使用 Kubernetes Dashboard
  10. 使用第三方工具

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 投票

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/663015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C#每日一记】多线程实现的贪吃蛇原理—不允许你还不知道

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

软件测试技能,JMeter压力测试教程(一)

目录 前言 一、安装Java环境 二、安装JMeter环境 三、启动JMeter脚本测试 四、查看报告文件 前言 使用jmeter做压测的时候,在windows上不太稳定,所有一直在 Linux 服务器上使用 jmeter 做压力测试 本篇记录下 Linux上搭建 jmeter 环境&#xff0c…

分布式学习第二天 redis学习

目录 1. 数据库类型 1.1 基本概念 1.2 关系/非关系型数据库搭配使用 2. Redis 2.1 基本知识点 2.2 redis常用命令 2.4 redis数据持久化 3 hiredis的使用 4. 复习 1. 数据库类型 1.1 基本概念 关系型数据库 - sql 操作数据必须要使用sql语句 数据存储在磁盘 存储的…

如何使用CDN给OSS做加速详解

意义 用户直接访问OSS资源,速度会受到OSS下行带宽以及Bucket地域的限制,若通过CDNOSS的方式进行访问,带宽上限更高,并且可以将OSS的资源缓存至就近的CDN节点,通过CDN节点进行分发,可以缩短网络传输距离&am…

Linux学习之CentOS(八)--Linux系统的分区概念

不知不觉已经记录了8篇Linux学习随笔了,虽然还是漂浮在Linux系统的表面,还有很多很多没有学,但是坚持学下去、坚持写下去就是成功的!!!! 在讲Linux系统分区之前,首先得介绍一下硬盘…

【SpringCloud】2.微服务的熔断和降级

目 录 1. 熔 断1.1 发生场景1.2 熔断实现1.3 熔断测试 2. 降 级2.1 发生场景2.2 降级处理2.3 降级测试 在 上篇博客,我们完成了项目的基本搭建工作,那这篇博客就来实现一下微服务的熔断和降级。 1. 熔 断 1.1 发生场景 在前面,我们用 spri…

【Java高级语法】(八)反射机制:有朋友问反射到底是怎样玩的?看完这篇文章你就清楚了~

Java高级语法详解之反射机制 :one: 概念:two: 优势和缺点:three: 使用3.1 Class类3.2 获取类的结构信息- 构造函数3.3 获取类的结构信息- 方法3.4 获取类的结构信息- 字段3.5 动态创建对象、调用方法和设置属性3.6 动态代理 :four: 底层原理:five: 应用场景:ear_of_rice: 总结:…

SedonaSQL 聚合函数使用说明

ST_Envelope_Aggr 函数说明: 返回几何的外边界 语法: ST_Envelope_Aggr (A:geometryColumn) 支持版本: v1.0.0 Spark SQL 举例说明: SELECT ST_Envelope_Aggr(pointdf.arealandmark) FROM pointdf运行示例(AggregateFunctionTest.java): ST_Intersection_Aggr 函数说明: …

大文件如何传输到电脑?亲测又快又简单!

我们平时可以因为各种原因,如更换新电脑、高清视频分享等,需要将大文件传输到另一台电脑上。大文件如何传输到电脑?相信这是很多朋友都想知道如何实现吧。我们为您提供了2种轻松将大文件从PC传输到PC的方法。话不多说,上技巧! 方…

腾讯云服务器地域有什么区别?怎么选比较好

腾讯云服务器地域有什么区别?云服务器地域怎么选择?地域是指云服务器所在机房的地理位置,用户距离地域越近网络延迟越低,速度越快,所以地域就近选择即可。广州上海北京等地域网站域名需要备案,中国香港或其…

SpringBoot使用MockMVC单元测试Controller

前言: 在SpringBoot应用程序中,Controller是接受客户端请求并返回响应数据的核心组件。为了保证Controller的正确性和稳定性,我们可以使用MockMVC框架进行单元测试。MockMVC是Spring框架提供的一个HTTP客户端,用于模拟HTTP请求和响…

2023年智能优化算法之——增长优化器Growth Optimizer(GO),附MATLAB代码

增长优化器的主要设计灵感来源于个人在社会成长过程中的学习和反思机制。学习是个体通过从外部世界获得知识而成长的过程。反思是检查个人自身不足并调整个人学习策略以帮助个人成长的过程。参考文献如下: Zhang, Qingke, et al. “Growth Optimizer: A Powerful M…

二维码在固定资产实物盘点中的应用

很多企业为了掌握固定资产的后续使用情况和状态,会定期对投入使用的固定资产进行盘点,然而固定资产常会出现分散情况,在这种情况下让财务人员到达每个固定资产的所在处进行实地盘点显得极为不现实。 也有不少企业会在盘点过程中使用到固定资…

聊天室(一)___常见的基本功能实现

最近搞聊天室的人还挺多,正好自己也弄就总结自己遇到必不可少的一些功能,本篇文章主要为自己和看到我文章的人一种思路,希望大家不要把聊天室想的太复杂。 上图是我自己做的一个聊天室,类似微信的单聊群聊收藏等功能,根…

python+requests接口自动化框架详解,没有比这个更详细的了

目录 为什么要做接口自动化框架 正常接口测试的流程是什么? 一、接口框架如下: 二、接口的数据规范设计---Case设计 2.1注册接口用例 2.2登录接口用例 三、创建utils包:用来存放公共的类 3.1 ParseExcel.py 操作封装excel的类&#xf…

【AI工具】-Stable Diffusion本地化部署教程

前言 今天我们要介绍的是时下最流行的AI绘图软件Stable Diffusion,虽然Diffusion.ai已经开放api,但是长时间的商业化调用我们需要购买很多的金币。所以我们需要找一个平替的AI绘图平台,现在主流市场中AI绘图软件主要就是OpenAI的DALLE、midj…

SSM会议管理系统

SSM会议管理系统 后端基于SSM、前端基于Freemarker写的会议管理系统、使用JDK8、mysql使用5.7版本 技术栈 Spring SpringMVC MyBatis Mysql Freemarker jqueryajax[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JGo0luHu-1687163482019)(img.png)] …

【Python 随练】打印水仙花数

题目: 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 简介: 在本篇博客中,我们将解决一个经典的数学问题:打印出所有的水仙花数。水仙花数是指一…

Unity核心5——Tilemap

Tilemap 一般称之为瓦片地图或者平铺地图,是 Unity2017 中新增的功能,主要用于快速编辑 2D 游戏中的场景,通过复用资源的形式提升地图多样性 ​ 工作原理就是用一张张的小图排列组合为一张大地图 ​ 它和 SpriteShape 的异同 共同点&#x…

浅析GPT2中的autoregressive和BERT的autoencoding源码实现

经常使用BERT来做研究,因此对Encoder的架构较为熟悉,但是从来没有了解过GPT这样的Decoder架构,尤其对自回归的形式不知道源码是如何实现的。 为了方便对比和讨论,接来下所探讨的源码都是基于HuggingFace这个框架的。 Bert注意力…