具有多个命名空间的 Kubernetes 集群上下文

Kubernetes Cluster Context with Multiple Namespaces

我有一个庞大的管道,其中包含具有多个权限级别的不同开发人员组。(使用 Jenkins Kubernetes 插件。

例如 QA 团队和 Developer 团队在 kubernetes 集群中有不同的服务帐户。

所以我需要创建一些与 kubernetes 集群的连接,但每个连接我都会使用命名空间名称更改集群的上下文。

我想在 kubernetes 上下文中使用多个命名空间。 那是我自己的 kubernetes 上下文文件。

- context:
cluster: minikube
namespace: user3
user: minikube

如何使用 kubernetes api 调用或在 yaml 文件中处理这个问题? 那是我的示例服务帐户 yaml 文件。

 apiVersion: v1
 kind: ServiceAccount
 metadata:
  name: dev

 kind: Role
 apiVersion: rbac.authorization.k8s.io/v1beta1
 metadata:
   name: dev

 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"]

 apiVersion: rbac.authorization.k8s.io/v1beta1
 kind: RoleBinding
 metadata:
 name: dev

  roleRef:
  apiGroup: rbac.authorization.k8s.io
   kind: Role
  name: dev
subjects:
  - kind: ServiceAccount
    name: dev

如果您希望一个 jenkins 使用不同的服务帐户与 kubernetes API 对话,您需要在配置中创建多个 Jenkins "clouds",每个都有不同的凭据。然后在您的管道中设置 "cloud" 选项以选择正确的