日志配置 #
本文档将指导您如何配置日志功能。
什么是日志? #
日志是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)和共享模拟设置(logsFile和follow)组成。
如果在组中未给出containers,则该组中的logsFile和follow将应用于目标 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.name 和 metadata.namespace 必须与关联的 Pod 匹配,ClusterLogs 有一个额外的 selector 字段,用于指定要模拟的目标 Pod。matchNamespaces 和 matchNames 都表示为列表,旨在按不同级别获取 Pod 集合
- 如果
matchNamespaces为空,则 ClusterLogs 将应用于由kwok管理且名称列在matchNames中的所有 Pod。 - 如果
matchNames为空,则 ClusterLogs 将应用于由kwok管理且位于matchNamespaces中列出的命名空间下的所有 Pod。 - 如果
matchNames和matchNamespaces都未设置,则 ClusterLogs 将应用于kwok管理的所有 Pod。
ClusterLogs 的 logs 字段与 Logs 中的语义相同。