kube-apiserver开启审计
k8s v1.19.0
请求处理的多个阶段
阶段 |
含义 |
RequestReceived |
收到请求 |
ResponseStarted |
已发送响应头,但未发送响应正文。 |
ResponseComplete |
完成响应正文,流程结束。 |
Panic |
内部处理出错,未完成请求。 |
审核级别level
级别 |
含义 |
None |
不记日志。 |
Metadata |
记日志,包括元数据,不包括请求和响应正文。 |
Request |
记日志,包括元数据和请求正文,不包括响应正文。 |
RequestResponse |
记日志,包括元数据、请求正文和响应正文。 |
# /etc/kubernetes/pki/audit-policy.yaml
apiVersion: audit.k8s.io/v1beta1
kind: Policy
rules:
- level: Request
resources:
- group: ""
- level: RequestResponse
resources:
- group: ""
- level: Metadata
resources:
- group: ""
kube-apiserver pod中增加如下配置
# 启动参数
--audit-policy-file=/etc/kubernetes/audit/audit-policy.yaml
--audit-log-format=json
--audit-log-path=/etc/kubernetes/audit/kube-apiserver-audit.log
--audit-log-maxage=30
--audit-log-maxbackup=3
--audit-log-maxsize=1024
# 容器挂载
- mountPath: /etc/kubernetes/audit
name: k8s-audit
# 主机挂载
- hostPath:
path: /etc/kubernetes/audit
type: DirectoryOrCreate
name: k8s-audit
--audit-policy-file:审计策略
--audit-log-format:审计日志格式
--audit-log-path:审计日志路径
--audit-log-maxage:保留审计日志的最大天数
--audit-log-maxbackup:保留审计日志的最大数量
--audit-log-maxsize:保留审计日志的最大MB
查看kube-apiserver审计日志
tail -f /etc/kubernetes/audit/kube-apiserver-audit.log
有请求收到时间和请求处理完成时间。