admin管理员组文章数量:1648375
背景:
在gitlib-ci 对接kubernetes的时候报错:
ERROR: Job failed (system failure): pods is forbidden: User “system:serviceaccount:dev:default” cannot create resource “pods” in API group “” in the namespace “dev”
原因:
k8s使用的RBAC权限访问控制,当前对namespace dev 没有操作权限
我在gitlab-ci.yml 文件里面 使用 --kubeconfig 带 kubeadm.conf 的admin权限管理文件去认证操作
一般存在于master节点的/root/.kube/config
kubectl --kubeconfig dev.conf -n dev get pod
我的集群使用的kubeadm安装的, 默认对每一个命名空间有一个默认的serviceaccount :default
如果在CI里面没有特别指定serviceaccount 那么将使用默认账户 system:serviceaccount:dev:default
最终的原因就是没有创建 对应 namespaces 的 集群角色绑定clusterrolebinding
解决办法:
执行一下命令,创建clusterrolebinding即可
kubectl create clusterrolebinding gitlab-cluster-admin --clusterrole=cluster-admin --group=system:serviceaccounts --namespace=dev
效果
附件:
gitlab-ci.yml
stages:
- build
- deploy
k8s-deploy:
stage: deploy
image: http://myharbor/kubectl:latest
only:
- ci-test
script:
- kubectl --kubeconfig dev.conf -n dev get pod
tags:
- k8s-runner
runner配置文件config.toml
[runners.kubernetes]
host = ""
bearer_token_overwrite_allowed = false
image = "docker:dind"
namespace = "dev"
namespace_overwrite_allowed = ""
privileged = true
pull_policy = "if-not-present"
helper_image = "http://myharbor/cfss/gitlab-runner-helper:x86_64-ac2a293c"
service_account_overwrite_allowed = ""
pod_annotations_overwrite_allowed = ""
参考:
https://gist.github/Machy8/da45ed785b0a14ab625f9b2614b9829b
本文标签: UserSystemforbiddenKubernetespods
版权声明:本文标题:kubernetes:pods is forbidden: User “system:serviceaccount:dev:default” cannot create resource “pods” 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1729497611a1203099.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论