Sole Tiller 在 Kubernetes 上部署多个命名空间
Sole Tiller to deploy multiple namespace on Kubernetes
无法在 https://github.com/helm/helm/blob/master/docs/rbac.md 找到,Tiller 是否能够在其他多个命名空间上安装图表?
希望kube-system命名空间上有一个Tiller,也有多个命名空间:namespaceA, namespaceB, namespaceC, ...
最后我希望我可以将 nginx 部署到多个名称空间,例如:
helm init --service-account tiller --tiller-namespace kube-system
helm install nginx --tiller-namespace kube-system --namespace namespaceA
helm install nginx --tiller-namespace kube-system --namespace namespaceB
我想知道这是否可行以及如何设置服务帐户、角色和角色绑定。
谢谢。
可以使用 clustetRoles 而不是 Roles 来完成,这样您就可以在所有命名空间中授予权限。 clusterrole、clusterrolebinding 和 serviceaccount 代码为:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller-manager
rules:
- apiGroups: ["", "batch", "extensions", "apps"]
resources: ["*"]
verbs: ["*"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller-binding
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
roleRef:
kind: ClusterRole
name: tiller-manager
apiGroup: rbac.authorization.k8s.io
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
如果您只想授予几个命名空间的权限,您应该在每个命名空间中创建一个角色绑定,如下所示:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller-binding
namespace: namespaceA
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
roleRef:
kind: ClusterRole
name: tiller-manager
apiGroup: rbac.authorization.k8s.io
无法在 https://github.com/helm/helm/blob/master/docs/rbac.md 找到,Tiller 是否能够在其他多个命名空间上安装图表?
希望kube-system命名空间上有一个Tiller,也有多个命名空间:namespaceA, namespaceB, namespaceC, ...
最后我希望我可以将 nginx 部署到多个名称空间,例如:
helm init --service-account tiller --tiller-namespace kube-system
helm install nginx --tiller-namespace kube-system --namespace namespaceA
helm install nginx --tiller-namespace kube-system --namespace namespaceB
我想知道这是否可行以及如何设置服务帐户、角色和角色绑定。
谢谢。
可以使用 clustetRoles 而不是 Roles 来完成,这样您就可以在所有命名空间中授予权限。 clusterrole、clusterrolebinding 和 serviceaccount 代码为:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller-manager
rules:
- apiGroups: ["", "batch", "extensions", "apps"]
resources: ["*"]
verbs: ["*"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller-binding
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
roleRef:
kind: ClusterRole
name: tiller-manager
apiGroup: rbac.authorization.k8s.io
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
如果您只想授予几个命名空间的权限,您应该在每个命名空间中创建一个角色绑定,如下所示:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller-binding
namespace: namespaceA
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
roleRef:
kind: ClusterRole
name: tiller-manager
apiGroup: rbac.authorization.k8s.io