序言

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

文章标记颜色说明:

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

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 的容器的日志,可以执行以下命令:

  1.  
    kubectl logs my-pod -c my-container1
  2.  
    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日志的更多相关文章

  1. Docker & k8s 系列三:在k8s中部署单个服务实例

    本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...

  2. 运维笔记--docker高效查看后台日志

    场景描述: 应用程序运行在 Docker环境中,经常使用的查看后台日志的命令是:docker attach 容器名该命令优点:实时输出:不足之处:日志大量输出的时候,屏幕一闪而过,不便于调试,并且有一 ...

  3. 拒绝蛮力,高效查看Linux日志文件!

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 日常分析问题时,会频繁地查看分析日志,但如果蛮力去查看日志,耗时费力还不一定有效果,因此我总结了在Linux常用的 ...

  4. Docker & k8s 系列一:快速上手docker

    Docker & k8s 系列一:快速上手docker 本篇文章将会讲解:docker是什么?docker的安装,创建一个docker镜像,运行我们创建的docker镜像,发布自己的docke ...

  5. Docker & k8s 系列二:本机k8s环境搭建

    本篇将会讲解k8s是什么?本机k8s环境搭建,部署一个pod并演示几个kubectl命令,k8s dashboard安装. k8s是什么 k8s是kubernetes的简写,它是一个全新的基于容器技术 ...

  6. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...

  7. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...

  8. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...

  9. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...

  10. k8s系列---资源指标API及自定义指标API

    不得不说千万不要随意更改版本,我用的1.13的版本,然后学到这一步时,还因yaml文件不同,卡住了很久,然后各种google才找到解决办法  https://www.linuxea.com/2112. ...

随机推荐

  1. 什么是DCloud

    什么是DCloud1.什么是Dcloud2.主要包括 1. 开发工具 2. 前端框架 3. uniCloud 4. 5+app 5. MUI 6. wap2app1.什么是Dcloud 1. Dclo ...

  2. 《美英报刊阅读教程(中级精选本)(第五版)》 ISBN: 9787301306864

    作者: 端木义万 著 出版社:  北京大学出版社 出版时间:  2019-09 版次:  7 ISBN:  9787301306864 定价:  69.00 装帧:  平装 开本:  16开 纸张:  ...

  3. Facade 外观模式简介与 C# 示例【结构型5】【设计模式来了_10】

    〇.简介 1.什么是外观模式? 一句话解释:   将一系列需要一起进行的操作,封装到一个类中,通过对某一个方法的调用,自动完成一系列操作. 外观模式是一种简单而又实用的设计模式,它的目的是提供一个统一 ...

  4. 如何使用DALL-E 3

    如何使用 DALL-E 3:OpenAI 图像生成指南 DALL-E 3 是 OpenAI 图像生成器的高级版本,它可以理解自然语言提示来创建详细图像. 它克服了以前版本的方形图像限制,现在支持各种宽 ...

  5. js执行过程之上下文对象(Context)

    在js的学习中,我们已经不满足于仅了解js的基础知识,而是开始追求更深层次的学习.因为你会发现,仅了解js的基础知识,在开发项目的过程中是远远不够的.今天就来介绍一下在js执行过程中的一些相关内容了. ...

  6. nginx参数调优能提升多少性能

    前言 nginx安装后一般都会进行参数优化,网上找找也有很多相关文章,但是这些参数优化对Nginx性能会有多大影响?为此我做个简单的实验测试下这些参数能提升多少性能. 声明一下,测试流程比较简单,后端 ...

  7. JAVA类的加载(3) ——类加载后能够有效运行

    例1: 1 package classobject; 2 3 import java.lang.reflect.Constructor; 4 import java.lang.reflect.Invo ...

  8. 学习Hadoop不错的系列文章(转)

    http://www.cnblogs.com/xia520pi/archive/2012/04/22/2464934.html 1)Hadoop学习总结 (1)HDFS简介 地址:http://for ...

  9. JUC并发编程学习笔记(九)阻塞队列

    阻塞队列 阻塞 队列 队列的特性:FIFO(fist inpupt fist output)先进先出 不得不阻塞的情况 什么情况下会使用阻塞队列:多线程并发处理.线程池 学会使用队列 添加.移除 四组 ...

  10. 基于.NET、Uni-App开发支持多平台的小程序商城系统 - CoreShop

    前言 小程序商城系统是当前备受追捧的开发领域,它可以为用户提供一个更加便捷.流畅.直观的购物体验,无需下载和安装,随时随地轻松使用.今天给大家推荐一个基于.NET.Uni-App开发支持多平台的小程序 ...