【发布时间】:2018-09-12 14:33:20
【问题描述】:
我正在使用部署在 Kubernetes 上的 Jenkins。 Jenkins pod 部署在“kubernetes-plugin”命名空间中,并使用服务帐户“jenkins”,定义如下:
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: jenkins
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: jenkins
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get","list","watch"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get"]
- apiGroups: ["", "extensions", "apps"]
resources: ["deployments", "replicasets", "pods"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
name: jenkins
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: jenkins
subjects:
- kind: ServiceAccount
name: jenkins
但是当我在jenkins管道中使用kubectl apply -f web-api-deploy.yaml -n default时,报如下错误:
deployments.extensions "news-app-web-api-dev" is forbidden: User "system:serviceaccount:kubernetes-plugin:jenkins" cannot get deployments.extensions in the namespace "default"
这意味着:在命名空间“kubernetes-plugin”中使用服务帐户“jenkins”时,您不能在命名空间“default”上部署
那么有没有办法在另一个命名空间中部署部署?如何。
【问题讨论】:
标签: jenkins kubernetes jenkins-pipeline