我正在尝试通过GitLab CI / CD流程在Kubernetes集群上运行部署(即,我不控制大多数配置)。我也是Kubernetes的新手,所以如果这是基础知识并且很明显,请原谅我。
我已经创建了角色绑定:
kubectl create rolebinding [foo] --clusterrole=edit --serviceaccount=[bar]:default
并将我的令牌和所有设置添加到GitLab
但是,当部署开始时,它将始终在以下情况下失败:
Error from server (Forbidden): error when creating "/builds/bar/baz/deployment.yml": service is forbidden: User "system:serviceaccount:bar:bar-service-account" cannot create services in namespace "bar"
我认为我应该在system:serviceaccount:bar:default
工作。为什么:default
被:bar-service-account
取代和/或如何解决这个问题。
非常感谢
答案 0 :(得分:1)
您正在使用创建的角色绑定向默认服务帐户授予权限。但是,部署未使用该服务帐户。如果查看部署清单,它将具有bar-service-account的serviceAccountName。
要么更改部署以使用默认服务帐户,要么更改角色绑定以向正在使用的服务帐户授予权限。