我们有多个开发团队,他们在kuberenetes上工作和部署他们的应用程序。我们使用helm将应用程序部署在kubernetes上。
当前,我们共享集群之一面临的挑战。我们希望为每个团队分别部署分er。因此,他们可以访问自己的资源。默认的集群管理员角色将无济于事,我们也不想这么做。
假设我们为一个团队提供了多个命名空间。我想部署具有使用资源的权限的分till,或者需要在这些命名空间中创建分till。
团队>多个 namespace
使用具有与其关联的角色(具有对 namespace 的完全访问权限-并非全部)的服务帐户的分。
最佳答案
根据the fine manual的介绍,每个团队需要一个ClusterRole
,以定义对各种资源的操作类型,然后使用 RoleBinding
将这些规则限定在特定的命名空间中。绑定(bind)目标的两端将是团队的分till的ServiceAccount
和团队的ClusterRole
,然后是每个RoleBinding
的一个Namespace
实例(即使它们在文本上相同,但namespace:
部分除外)
我实际上希望您可以制作一个内部 Helm 图表,该图表将自动执行该关系的详细信息,然后生成helm install --name team-alpha --set team-namespaces=ns-alpha,ns-beta my-awesome-chart
,然后授予您的分till cluster-admin
或您想要的其他限制性更强的ClusterRole
。