RBAC角色绑定和ACL如何在只在1个跟随节点上运行MDS的kafka集群中工作



我有一个kafka集群,其中有1个控制器和2个跟随代理节点。

在一个follower broker节点中,我更改server.properties,配置MDS和LDAP,以便所有ACL和RBAC角色绑定都存储在MDS中。因此,仅在这一个跟随节点上,我有MDS在运行,而在其他2个节点上没有。

现在我重新启动一个只有MDS在运行的跟随节点。

我有以下问题/困惑,因为我不知道卡夫卡内部是如何工作的。我也找不到关于合并文档的相关信息。

  1. 如果我使用集群ID在该集群上进行RBAC角色绑定,会发生什么?它会因为总是连接到没有MDS运行的控制器节点而失败吗?因为RBAC需要MDS?

  2. 我创建的任何新ACL都会发生什么?我的假设是,它将根据kafka-acs命令中使用的引导服务器,在zookeeper或MDS中注册ACL。这是一个正确的假设吗?

如果将Confluent MDS内部主题设置为具有replication.factor=3,那么哪个代理是哪个并不重要。

MDS维护一个本地授权数据缓存,该缓存持久化到名为_confluent-metadata-auth的内部Kafka主题

https://docs.confluent.io/platform/current/kafka/configure-mds/index.html

假设MDS是一个HTTP服务器,那么运行多个实例,然后在前面使用负载均衡器会很有用。。。


默认的Authorizer将ACL存储在Zookeeper中。如果更改authorizer.class,则它们可以存储在其他任何位置。

取决于kafka acls 中使用的引导服务器

听起来你只有一个集群。引导服务器字符串定义整个集群(它接受CSV列表(,而不是集群中的一个服务器。

最新更新