我正在测试我的二进制授权策略并将豁免条目放入允许nginx
。
以下是我尝试通过将其添加到“不受政策约束的图片”下的条目
registry.hub.docker.com/library/nginx*
registry.hub.docker.com/library/nginx.latest
docker.io/library/nginx*
但失败并出现以下错误
$ kubectl run httpd-server --image=nginx --restart=Never -l app=httpd-server --port 80
Error from server (VIOLATES_POLICY): admission webhook "imagepolicywebhook.image-policy.k8s.io" denied the request: Image nginx denied by Binary Authorization default admission rule. Denied by always_deny admission rule
如果我禁用二进制授权并安装 nginx 包,它会显示以下存储库用于提取图像
image: docker.io/library/nginx:latest
此条目已存在于不受政策约束的图片中,但下载仍被阻止。按要求共享政策定义。
有什么建议 ?
答案1
我成功重现了您的环境,一切运行正常。我按照图中所示配置了我的策略。
我能够毫无问题地创建部署。我尝试了几次在选项之间进行更改,但最终没有发现问题。
请确保你正在运行一个集群二进制授权已启用。
为了验证已启用二进制授权对于集群,执行以下操作:
1 在云控制台中打开 GKE 页面。
2 在 Kubernetes 集群下,找到您的集群。
3 在“安全”下,验证“二进制授权”是否设置为“启用”。
此外,检查运行命令的集群是否与设置特定规则的集群相同也很重要。
在创建部署之前,请务必使用:
gcloud container clusters get-credentials NAME [--internal-ip] [--region=REGION | --zone=ZONE, -z ZONE] [GCLOUD_WIDE_FLAG …]
获取您需要使用的集群的凭证。