本文如何控制Tiller只能操作特定Namespace的方法。
在Helm的官方文档介绍的安装方法里,会给Tiller的Service Account绑定cluster-admin集群角色,这就意味着只要你的Helm能够和Tiller通信,那么就能通过Tiller控制所有Namespace下的Release。
在更多情况下,我们希望能够按照Namespace把Tiller的权限分割开来,比如A用户只能通过Tiller来控制Namespace A的Release,B用户只能通过Tiller来控制Namespace B的Release。
Configuring minimal RBAC permissions for Helm and Tiller文章提供了解决办法,原理是给每个Namespace部署一个Tiller,然后给其分配一个只能操作这个Namespace的Service Account。
注意:Configuring … 文章中提到了给CI/CD用的helm账号,本文没有涉及此内容。
我在这篇文章的基础上做了一些脚本,并列举一些常用的命令。
操作步骤
1)使用init-tiller-sa.sh
在Namespace下创建Service Account:
|
|
2)安装Tiller:
|
|
如果安装不成功,比如因为Tiller镜像Pull不下来,你可以这样:
|
|
3)使用Helm部署Charts,比如这样:
|
|
–namespace`参数可以不提供,如果不提供则和你kubectl的默认namespace相同。
注意:
所有的helm指令你都需要加上--tiller-namespace
参数。
如果你要删除Tiller,则:
|
|
评论