首页 > 解决方案 > 有没有办法从 Kubernetes 中的服务对象获取活动日志?

问题描述

我有以下情况(这是我提出问题的动机,而不是问题本身):

如果 Pod 看起来一切正常,但 ingress 抱怨,那么我应该检查中间人,即服务。然后我意识到没有简单的方法可以从服务中获取日志。

所以这是我的问题:

标签: kuberneteslogging

解决方案


K8s 中唯一产生日志的资源是 Pod!Pod 导致容器的创建,而容器本身又导致在 K8s 节点上创建 Linux 进程。这些进程写入由容器运行时“获取”并可供 K8s 使用的日志,例如,当您运行kubectl logs.

因此,只有 Pod 支持的 K8s 资源会产生日志,例如 Deployment、Daemonsets、StatefulSets 和 Jobs。

服务只是配置网络流量如何路由到 Pod 的逻辑资源。因此,在某种程度上,它们具有底层 Pod,但不会产生任何额外的日志输出。Service 资源唯一有形的结果是 K8s 节点上的 iptables 规则,它定义了流量必须如何从 Service IP 路由到底层 Pod 的 IP。

要解决与 Ingress 相关的问题,您可能会从通常作为部署部署并因此由 Pod 支持的入口控制器的日志中获得进一步的见解。


推荐阅读