在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Kubernetes日志有关知识点有哪些

109次阅读
没有评论

共计 2242 个字符,预计需要花费 6 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 Kubernetes 日志有关知识点有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

关于日志 #1 多种多样的日志

应用程序具有日志,用于排查问题。集群具有日志,用于排查问题。容器环境具有日志机制,容器化应用应将日志写入标准输出与标准错误。

#2 但这些日志机制存在问题

但是由容器引擎提供的日志功能远远不够:容器崩溃,驱逐 POD 实例,节点崩溃,在这些情况下我们依旧希望访问日志。因此日志需要独立存储,并且生命周期与节点、容器等等无关。

该概念被称为“集群日志”。

#3 集群日志

“集群日志”需要单独存储,但是 Kubernetes 并没有提供日志后端存储,需要我们自己集成。本文结合官方「Logging Architecture」文档,整理与日志有关内容。

写入标准输出的日志

使用 kubectl logs 查看日志,添加 –previous 选项查看已崩溃容器的日志。

如果在 POD 实例中具有容器,可以指定容器名查看特定容器日志。

节点级日志类型应用程序日志

由容器应用写入标准输出与标准错误的日志,会被容器引擎重定向。例如在 Docker 中,由日志驱动处理(在 Kubernetes 中,被配置写入 JSON 格式的文件中)。

注意,使用 Docker 日志驱动无法处理多行日志,需要在日志收集工具中进行处理。

如果容器重启,则 kubelet 会保存单个容器及它的日志。若驱逐 POD 实例,所有对应的容器将被驱逐,包括日志。

另外节点日志还要考虑轮转问题,防止日志消耗过多磁盘。但是 Kubernetes 当前不负责日志轮转,这个问题应该由容器应用处理。另外可以可以配置容器环境处理日志轮转,例如使用 Docker 的 –log-opt 选项。

当执行 kubectl logs 时,由对应节点的 kubelet 响应,直接读取日志文件。注意,如果外部系统执行轮转,日志截断为多个文件时,则 kubectl logs 只能读取组后一个文件。

系统组件日志

系统组件也有日志,但是分为两类:(1)运行在容器内的组件;(2)运行在容器外的组件;

运行在容器外的组件,例如 kubelet 及 Docker 等等:如果使用 systemd 管理,则日志写入 journald 中;如果未使用 systemd 管理,则日志写入 /var/log 中;
运行在容器内的组件,例如 kube-proxy 或 scheduler 等等:使用默认日志机制,将日志写入 /var/log 中;

同样,写入 /var/log 中的日志也需要轮转。

集群级日志的解决方案

由于 Kubernetes 没有提供集群日志解决方案,有以下集中途径解决:

 使用节点级日志代理,运行在每个节点中
 使用专用容器(Sidecar),收集应用程序日志
 从应用程序中直接将日志写入后端日志存储 

下面我们将简述各种解决方法

使用节点日志代理

以 DeamonSet 在每个节点运行 POD 实例,用于直接读取日志文件。但是这只适用于将日志写入标准错误与标准输出的容器。

常用解决方案有 Elasticsaerch+Fluentd 服务。

使用专用容器(Sidecar)

使用 Sidecar 容器(与应用容器处于相同 POD 实例的容器),有两种方式:(1)Sidecar 容器将应用日志“流入”自己的标准输出;(2)Sidecar 容器运行日志代理,收集应用程序日志;

# 流式 Sidecar 容器:
当 Sidecar 容器使用自身的标准错误与标准输出时,可以利用 kubelet 与每个节点的日志代理。Sidecar 容器可以读取文件、套接字、journald,然后将日志写入自己的标准错误、标准输出中。

这种方法可以从应用程序不同部分中分离出不同的日志流,即使有些应用程序可能不支持写入标准输入、与标准输出。日志重定向每次只需要处理很小日志,因此不会出现过渡的开销。另外由于 Sidecar 的标准输出与标准错误与 kubelet 处理,因此可以通过 kubectl logs 查看日志。

虽然 Sidecar 是额外的容器,但是它可以简单到只运行 tail 命令。Sidecar 是一种涉及模式。

另外节点级日志代理会自动处理日志,无需进一步配置。还可以配置收集代理来根据“源容器”日志类型进行解析。

尽管 CPU 使用降低,但是会增加磁盘使用量。如果你的应用程序需要将日志写入文件,那尽量写入到标准输出中,而不是使用 Sidecar 容器处理。

# 带有日志代理的 Sidecar 容器:
如果节点级日志代理无法满足需求,可以运行在 Sidecar 容器中运行日志收集代理。该代理可以经过配置,适用于特定应用程序。但是该类型的 Sidecar 会消耗更多资源,并且不能使用 kubectl logs 查看日志。

直接暴露日志

最后一种方法是将日志直接写入后端存储,这是一种日志存储方案,但是与 Kubernetes 集群的关系并不大,这里不再讨论。

最后总结

在 Kubernetes Cluster 中,需要处理的日志分为以下几种:

 容器外日志:kubelet、Docker
 容器内日志:(已写标准输入、标准错误)容器应用程序,包括集群组件(比如 kube-porxy,etcd 等等)容器内日志:(未写标准输入、标准错误)容器应用应用,写入容器本地 

使用 DaemonSet 运行 POD 实例,在节点中收集日志。

以上是“Kubernetes 日志有关知识点有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2242字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 久久色视频在线观看 | 国产露脸150部国语对白 | 狠狠色综合7777久夜色撩人ⅰ | 成人亚洲精品久久久久软件 | 麻豆md0077饥渴少妇 | www视频在线播放 | 国产精品美女久久久久久久 | 中文字幕第六页 | 波多野结衣乳巨码无在线观看 | 国产精品丝袜黑色高跟鞋 | 99久久综合久中文字幕 | 国产第20页| 毛片视频网 | 久久夜色精品国产亚洲av动态图 | 亚洲av一宅男色影视 | 四虎亚洲 | 国产美女在线观看 | 国产精品jizz视频 | 丰满五十六十老熟女hd | 国产91一区二这在线播放 | 午夜免费影院 | 99看片| 精品一区二区免费视频 | 国内自拍videos hd | 天天摸天天爽 | 操日韩 | 日韩中文字幕精品视频在线 | 波多野结衣不打码视频 | 日本免费一二三区 | 色综合久久网 | 久久蜜月| 四虎精品影院永久在线播放 | 日韩无码专区 | 日本激情在线看免费观看视频 | 欧美成人爽毛片在线视频 | 一级毛片免费播放视频 | 韩国免费高清一级毛片性色 | 欧美肉体狂欢派对在线观看 | 国产亚洲欧美一区二区三区 | 亚洲国产成+人+综合 | 国产精品久久久久9999小说 |