有没有办法从 Kubernetes 中的服务对象获取 activity 日志?

Is there a way of obtaining activity logs from Service objects in Kubernetes?

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

如果 Pod 看起来没问题,但入口有问题,那么我应该检查中间人,即 Service。然后我意识到没有简单的方法可以从服务中获取日志。

所以这是我的问题:

K8s中唯一产生日志的资源是Pods! Pods 导致容器的创建,容器本身导致在 K8s 节点上创建 Linux 进程。这些进程写入的日志被容器 运行time“收割”并提供给 K8s,例如当你 运行 kubectl logs.

因此,只有 Pods 支持的 K8s 资源才会产生日志,例如部署、Daemonsets、StatefulSets 和作业。

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

的 IP。

要解决与 Ingress 相关的问题,您可能会从 ingress controller 的日志中获得更多见解,该日志通常作为部署部署,因此由 Pods 提供支持。