kubectl delete/create secret forbidden(谷歌云平台)

Jdr*_*uwe 6 docker google-cloud-platform kubernetes kubectl

我遵循以下关于使用gitlab和Kubernetes进行持续集成的教程(在我的案例中是谷歌云):https://about.gitlab.com/2016/12/14/continuous-delivery-of-a-spring-boot- application-with-gitlab-ci-and-kubernetes /.

在本教程的某些时候,您必须首先删除然后为Gitlab的图像注册表创建一个秘密:

- kubectl delete secret registry.gitlab.com
- kubectl create secret docker-registry registry.gitlab.com --docker-server=https://registry.gitlab.com --docker-username=$REGISTRY_USERNAME --docker-password=$REGISTRY_PASSWD --docker-email=$EMAIL
Run Code Online (Sandbox Code Playgroud)

在这一步出现问题,我收到以下错误:

Error from server (Forbidden): secrets "registry.gitlab.com" is forbidden: User "client" cannot delete secrets in the namespace "default": Unknown user "client"
Error from server (Forbidden): secrets is forbidden: User "client" cannot create secrets in the namespace "default": Unknown user "client"
Run Code Online (Sandbox Code Playgroud)

我在Google云端shell中得到了同样的错误:

在此输入图像描述

添加以下行并没有真正帮助,我仍然得到创建错误(我也100%确定删除也'崩溃',但'2>/dev/null'只是让它移动到创建步骤):

kubectl delete secret registry.gitlab.com 2>/dev/null || echo "secret does not exist"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?Thx提前!

Sid*_*eni 8

gcloud config unset container/use_client_certificate

注销并登录后.它应该工作.在群集设置中禁用旧版授权时会发生这种情况,因为您使用的客户端证书是旧版身份验证方法

  • 做这个。不适用于生产级代码。因为这将授予管理员访问所述服务帐户的权限。`kubectl create clusterrolebinding serviceaccounts-cluster-admin--clusterrole=cluster-admin --group=system:serviceaccounts` 这将确保您有权创建秘密。 (2认同)