kubernetes - 为什么请求正文没有显示在 Kubernetes API 服务器审核日志中?
问题描述
我添加了以下命令行参数kube-apiserver
来启用审计日志记录:
- --audit-log-path=/tmp/k8s-audit.log
- --audit-policy-file=/etc/kubernetes/audit.yaml
- --audit-log-maxage=1
- --audit-log-maxsize=100
- --audit-log-maxbackup=1
的内容/etc/kubernetes/audit.yaml
是:
apiVersion: audit.k8s.io/v1
kind: Policy
omitStages:
- "ResponseStarted"
- "ResponseComplete"
rules:
- level: RequestResponse
我已经运行了一个带有详细日志记录的命令,这样我就可以看到请求正文:
$ kubectl --v=10 uncordon cluster-worker2
kubectl 命令将请求正文记录如下:
I0328 09:00:07.591869 47228 request.go:942] Request Body: {"spec":{"unschedulable":null}}
但是我在 kubernetes 服务器上的审计日志文件中的任何地方都看不到这个请求正文。我的配置有什么问题?
解决方案
该请求实际上只记录在ResponseComplete
舞台上,有些出乎意料。尽管 Kubernetes理论上可以在收到请求后立即记录它,但它不会。
因此有必要从策略配置文件 ( )中删除该ResponseComplete
行。omitstages
audit.yaml
推荐阅读
- python - Cat Facts API discord.py
- kartik-v - 如何在 Kartik 导出菜单中导出数据的标题前添加图像>
- python - 将python文件转换为exe时有没有办法最小化命令提示符
- react-native - 为什么 React Native aspectRatio 在视频元素上被忽略?
- flutter - 用于实现这种布局的最佳颤振小部件是什么?
- javascript - Keydown 事件在 Javascript 中不起作用
- ansible - 如何告诉 Ansible 在任务中包含本地主机
- leaflet - 传单画布标记无法设置笔划
- javascript - 循环一个开关盒的随机数最多 n 次
- java - 批量更新弹性搜索实体