我们的基础架构目前有2个Kubernetes群集,其中一个群集(群集1)在另一个群集(群集2)中创建群集。由于我们在kubernetes1.7.x上,我们能够做到这一点。
然而,1.8 Kubernetes增加了对RBAC的支持,因此我们无法再在新集群中创建pod。
我们已经添加了对服务帐户的支持,并确保正确设置了RoleBindings。但主要问题是服务帐户不会在集群外传播(这是正确的)。群集2接收请求的用户称为“客户端”,因此当我们向“客户端”添加“角色绑定”时,#B;客户端'作为用户,一切正常。
这肯定不是正确的解决方案,因为现在任何与Kubernetes API服务器通信的集群都可以创建一个pod。
是否支持跨群集的RBAC?或者,有没有办法将服务信息传播到我们想要创建pod的群集?
P.S。:我们的Kubernetes集群目前正在使用GKE。但是,我们希望这适用于所有Kubernetes引擎。
答案 0 :(得分:0)
您的cluster-1 SA使用kubecfg(针对cluster-2),该kubecfg解析为用户" client"。解决此问题的唯一方法是生成一个kubecfg(用于cluster-2),其中包含与cluster-1 SA相关联的身份(证书/令牌)。有很多方法可以做到:https://kubernetes.io/docs/admin/authentication/
最简单的方法是在cluster-2中创建一个相同的SA,并在cluster-1中的kubecfg中使用它的标记。仅将RBAC提供给该SA。