我是 Gitlab 和 Kubernetes 的新手,我想知道 Gitlab 运行程序和 Gitlab 代理之间有什么区别。
在 gitlab 上,它说代理用于连接到集群、运行管道和部署应用程序。
但是对于常规运行程序,您只需拥有一个调用kubectl
与集群交互的管道即可。
没有使用 跑步者的代理可以做什么kubectl
?
我正在运行一个创建 kubernetes 命名空间的管道,但是当我运行它时,我得到:
Error from server (Forbidden): namespaces is forbidden: User "system:serviceaccount:gitlab-runner:default" cannot create resource "namespaces" in API group "" at the cluster scope
Run Code Online (Sandbox Code Playgroud)
我创建了 aClusterRole
和 a来允许命名空间中的ClusterRoleBinding
服务用户使用以下命令创建命名空间:default
gitlab-runner
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: modify-namespace
rules:
- apiGroups: [""]
resources:
- namespace
verbs:
- create
Run Code Online (Sandbox Code Playgroud)
和:
ind: ClusterRoleBinding
metadata:
name: modify-namespace-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: modify-namespace
subjects:
- kind: ServiceAccount
name: default
namespace: gitlab-runner
Run Code Online (Sandbox Code Playgroud)
但这给了我同样的错误。我究竟做错了什么?