k8s默認是關閉審計功能的,想看的話需要到apiserver的pod中才可以。
開啟此功能是為了進行k8s審計日志的收集,方便我們查看k8s中用戶的各自操作。
開啟此功能之前,我們要先創建個審計策略文件audit-policy.yaml
例如以下的測驗文件
apiVersion: audit.k8s.io/v1
kind: Policy
rules:# 記錄 PVC 創建/刪除操作- level: Metadataverbs: ["create", "delete"]resources:- group: "" # 核心 API 組resources: ["persistentvolumeclaims"]# 可選:記錄 PVC 更新操作(如狀態變更)- level: Requestverbs: ["update"]resources:- group: ""resources: ["persistentvolumeclaims"]# 記錄命名空間操作(PVC 依賴命名空間)- level: Metadataresources:- group: ""resources: ["namespaces"]
我把文件放在了/etc/kubernetes/audit-policy.yaml
然后我們備份apiserver文件
cp /etc/kubernetes/manifests/kube-apiserver.yaml /tmp/apiserver-bak.yaml
然后再進行修改操作
- --audit-policy-file=/etc/kubernetes/audit-policy.yaml- --audit-log-path=/var/log/audit/kubernetes-audit.log- --audit-log-maxage=30- --audit-log-maxbackup=10- --audit-log-maxsize=100- --audit-log-format=json- --audit-log-compress=true
審計策略路徑
存放審計文件的路徑
日志最大存放時間
日志最大副本數
日志最大存儲大小m
日志輸出的格式
日志是否開啟壓縮
這里定義好之后,接著往下把這個存放審計文件的路徑掛載到pod中
volumemounts掛載審計策略文件和審計日志路徑
在volumes中配置這兩個
保存退出,然后把/etc/kubernetes/manifests/kube-apiserver.yaml文件移動到/etc,過十秒后再移動回來/etc/kubernetes/manifests/kube-apiserver.yaml觸發apiserver重啟,即可查看生效后的審計日志。
tail -f /var/log/audit/kubernetes-audit.log