日志

日志配置 #

本文档将指导您如何配置日志功能。

什么是日志? #

日志kwok 配置,允许用户定义和模拟日志到单个 Pod。

下面的 YAML 显示了日志资源的所有字段

kind: Logs
apiVersion: kwok.x-k8s.io/v1alpha1
metadata:
  name: <string>
  namespace: <string>
spec:
  logs:
  - containers:
    - <string>
    logsFile: <string>
    follow: <bool>

Pod 的日志模拟设置通过logs字段指定。logs字段按组组织,每个组对应于共享相同日志模拟配置的一组容器。每个组由容器名称列表(containers)和共享模拟设置(logsFilefollow)组成。

如果在组中未给出containers,则该组中的logsFilefollow将应用于目标 Pod 的所有容器。

logsFile字段指定日志的文件路径。如果未设置logsFile字段,则将忽略此项。follow字段指定是否关注日志。如果未设置follow字段,则follow字段将默认为 false。

ClusterLogs #

除了模拟单个 Pod,用户还可以通过 ClusterLogs 模拟多个 Pod 的日志。

以下 YAML 展示了 ClusterLogs 资源的所有字段

kind: ClusterLogs
apiVersion: kwok.x-k8s.io/v1alpha1
metadata:
  name: <string>
spec:
  selector:
    matchNamespaces:
    - <string>
    matchNames:
    - <string>
  logs:
  - containers:
    - <string>
    logsFile: <string>
    follow: <bool>

与 Logs 相比,其 metadata.namemetadata.namespace 必须与关联的 Pod 匹配,ClusterLogs 有一个额外的 selector 字段,用于指定要模拟的目标 Pod。matchNamespacesmatchNames 都表示为列表,旨在按不同级别获取 Pod 集合

  1. 如果 matchNamespaces 为空,则 ClusterLogs 将应用于由 kwok 管理且名称列在 matchNames 中的所有 Pod。
  2. 如果 matchNames 为空,则 ClusterLogs 将应用于由 kwok 管理且位于 matchNamespaces 中列出的命名空间下的所有 Pod。
  3. 如果 matchNamesmatchNamespaces 都未设置,则 ClusterLogs 将应用于 kwok 管理的所有 Pod。

ClusterLogs 的 logs 字段与 Logs 中的语义相同。

示例 #