我正在遵循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,创建一个集群并尝试创建策略。
答案 0 :(得分:2)
使用以下方法在Kubernetes 1.11上获得相同的结果:
apiVersion: audit.k8s.io/v1
通过更改为固定:
apiVersion: audit.k8s.io/v1beta1
答案 1 :(得分:1)
启动apiserver时指定了审核策略文件:
您可以使用--audit-policy-file标志将带有策略的文件传递给kube-apiserver。