我按照here的说明,如何创建一个策略来审核Kubernetes中的操作。
当我运行以下YAML文件时:
kubectl apply -f - <<EOF
apiVersion: audit.k8s.io/v1 # This is required.
kind: Policy
# Don't generate audit events for all requests in RequestReceived stage.
omitStages:
- "RequestReceived"
rules:
# Log pod changes at RequestResponse level
- level: RequestResponse
resources:
- group: ""
# Resource "pods" doesn't match requests to any subresource of pods,
# which is consistent with the RBAC policy.
resources: ["pods"]
EOF
我收到以下错误:
错误:无法识别“STDIN”:版本“audit.k8s.io/v1”中的类型“策略”不匹配
我试图将apiVersion
更改为audit.k8s.io/v1beta1
以及v1
,但它失败并出现同样的错误。
注意标志--audit-policy-file
没有出现在/etc/kubernetes/manifests/kube-apiserver.yaml
中,但我不认为它是相关的,因为这只是创建一个对象。
如果要重现,可以转到https://labs.play-with-k8s.com,创建一个集群并尝试创建策略。
使用以下内容在Kubernetes 1.11上获得相同:
apiVersion: audit.k8s.io/v1
通过更改为:
apiVersion: audit.k8s.io/v1beta1
启动apiserver时指定审核策略文件:
您可以使用--audit-policy-file标志将包含策略的文件传递给kube-apiserver。