如何将标志传递给 klog 以进行结构化日志记录

How to pass a flag to klog for structured logging

作为 kubernetes 1.19 的一部分,structured logging 已经实现。

read kubernetes 日志引擎是 klog 并且结构化日志遵循以下格式:

<klog header> "<message>" <key1>="<value1>" <key2>="<value2>" ...

酷!但更好的是,您显然可以将 --logging-format=json 标志传递给 klog,以便直接在 json 中生成日志!

{
   "ts": 1580306777.04728,
   "v": 4,
   "msg": "Pod status updated",
   "pod":{
      "name": "nginx-1",
      "namespace": "default"
   },
   "status": "ready"
}

不幸的是,我无法找到我应该如何以及在何处指定 --logging-format=json 标志。

它是kubectl命令吗?我正在使用 Azure 的 aks。

--logging-format=json 是一个标志,需要在所有 Kuberentes 系统组件(Kubelet、API-Server、Controller-Manager & Scheduler)上设置。您可以检查所有标志 here.

遗憾的是,您现在无法使用 AKS 执行此操作,因为您拥有来自 Microsoft 的托管控制平面。