暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用控制中心和集群注册表简化Apache Kafka多集群管理

Kafka Confluent 兴趣爱好者 2021-06-10
1356

大多数已经使用事件流作为工具的企业,基本都运行多个Apache Kafka集群例如,他们可能使用不同的Kafka集群进行测试与生产或不同的用例。但是,自我管理多个Kafka群集可能会给系统管理员带来挑战。

为了帮助Kafka管理员,我们在Confluent Platform 6.0中引入了集群注册表,通过它您可以在Confluent Platform元数据服务(MDS)中集中注册Kafka集群。MDS管理重要信息,例如有关Confluent Platform环境的授权数据,我们将在下面更详细地解释。

Confluent Platform还随附Confluent Control Center,用于管理和监视多个Kafka群集。通常,控制中心管理的群集集与在MDS中向“群集注册表”注册的集相同。由于群集注册表和控制中心本质上存储的是相同的信息,因此导致以下缺点:

  • 重复的工作:用户必须在两个工具中注册Kafka集群

  • 容易出错:不同的位置意味着同一群集的群集名称最终可能会有所不同

在Confluent Platform 6.0.1中,我们在Control Center中添加了对从Cluster Registry中读取集群信息的支持,以避免上述陷阱。


什么是控制中心?

Confluent Control Center是基于Web的工具,用于管理和监视Apache Kafka以及Confluent软件组件,例如Kafka连接器,Schema Registry和ksqlDB。控制中心提供了一个用户界面,使开发人员和操作员可以快速了解群集的运行状况。观察和控制消息,主题和架构注册表;并开发和运行ksqlDB查询。

管理和监视多个集群

您可以使用控制中心来管理和监视多个Kafka群集,而不仅仅是一个。为此,必须在控制中心配置文件中指定每个Kafka群集。在下面的示例中,我们lon-prod
为伦敦的生产流量指定了一个集群


confluent.controlcenter.kafka.lon-prod.bootstrap.servers = localhost:9192

上述集群将依次出现在Control Center UI中,如下所示:

有关详细信息,请参阅有关多群集配置的文档

在Confluent Platform 6.0.1之前,上述方法是配置多个Kafka群集以与Confluent Control Center一起使用的唯一选择。在以下各节中,我们将说明最新版本如何通过“群集注册表”使多群集管理更加方便。


什么是群集注册表?

群集注册表基于Confluent平台元数据服务(MDS)的顶部,使您能够跟踪已安装的群集。对于不熟悉MDS的用户,Confluent平台元数据服务管理有关您的Confluent平台安装的各种元数据。具体来说,MDS:

  • 承载群集注册表,使您能够跟踪已安装的群集

  • 用作跨集群授权数据的记录系统

  • 提供了一种方便的方法来管理多个群集中的审核日志配置

使用群集注册表的先决条件是首先启用RBACRBAC,又名基于角色的访问控制,是一种基于分配给组织内用户的角色来控制系统访问的方法。RBAC利用Confluent平台元数据服务从集中式配置上下文中配置和管理其实现。

注册集群

您可以使用curl命令或Confluent Platform CLI来注册集群。在群集注册表中注册Kafka群集时,必须指定以下信息:

  • 群集名称: Kafka群集的名称

  • 群集ID: Kafka群集的ID

  • 主机名和端口号:集群的连接信息

  • 主机和端口使用的协议对于Kafka群集,该协议应为SASL_SSL(对于非生产型Kafka群集,该协议应为SASL_PLAINTEXT);对于Kafka Connect,ksqlDB和Schema Registry群集,该协议应为HTTP或HTTPS


使用CLI注册集群

要使用CLI注册新的Kafka集群,请执行以下操作:

  1. 首先登录到MDS集群:

    confluent login --url <protocol>://<host>:<port>
  2. 通过运行以下命令来注册新的Kafka集群:

    confluent cluster register \
    --cluster-name <exampleKafka> \
    --kafka-cluster-id <kafka-ID> \
    --hosts <10.6.6.6:9000,10.3.3.3:9003> \
    --protocol SASL_PLAINTEXT
  3. 注册与新的Kafka集群关联的新的Connect集群:

    confluent cluster register \
    --cluster-name <exampleConnect> \
    --kafka-cluster-id <kafka-ID> \
    --connect-cluster-id <connect-ID> \
    --hosts <10.6.6.7:8443> \
    --protocol HTTP

注意:用您的信息替换<>中的值

有关完整的指南,请参阅Cluster Registry文档

控制中心+群集注册表

如引言中所述,在Confluent Platform 6.0.1中,我们添加了对Control Center的支持,以从Cluster Registry中读取集群信息。这意味着控制中心可以将“群集注册表”用作其配置属性文件上群集信息的主要来源。

下图显示了启用和禁用“群集注册表”时控制中心如何发现群集信息。

在控制中心中启用群集注册表

要启用从群集注册表中读取群集信息,您可以按照以下步骤操作:

  1. 首先,在控制中心的属性文件中添加以下配置: confluent.metadata.cluster.registry.enable=true

  2. 其次,control-center.properties
    按照本指南中的说明将RBAC设置添加到文件中

在执行#1和#2之后,启动Control Center或重新启动它(如果它已经在运行)。启动后,控制中心应从“群集注册表”中读取群集信息。

注意事项:

  • 启用群集注册表后,无需在Confluent Control Center的配置文件中指定Kafka设置。仅当我们需要指定用于与Kafka集群通信的其他属性(例如,用于加密通信的ssl。*设置)时,才需要使用该属性。

  • 仍然需要在属性文件中配置Control Center的引导群集信息。我们不能仅从Cluster Registry分辨出哪个群集是引导群集。

迁移脚本

为了更轻松地将群集信息从控制中心迁移到群集注册表,我们在Confluent Platform中添加了以下脚本。

Control-center-export

您可以使用此脚本从控制中心导出现有群集信息:


control-center-export --cluster control-center.properties --outfile exported-cluster-info.json

导出的数据如下所示:


[
{
"clusterName": "lon-prod",
"scope": {
"path": [],
"clusters": {
"kafka-cluster": "jRCEm14eR_SadwCWqhXV-w "
}
},
"hosts": [
{
"host": "localhost",
"port": 9193
}
],
"protocol": "SASL_PLAINTEXT"
}
]

Cluster-information-migration-script


该脚本提供了一种从群集注册表导入或导出数据的方法。这是将群集信息导入群集注册表的方法:


cluster-information-migration-script -i --url http:// mds:8090 -f export-cluster-info.json

要从“群集注册表”中导出群集信息,您将执行类似的操作:


cluster-information-migration-script -e --url http:// mds:8090 -f cluster-info-to-export.json

从控制中心更新群集名称

控制中心始终允许您通过UI更新Kafka群集的名称,如下所示。

当同时启用了群集注册表时,也是如此。控制中心不仅可以从“群集注册表”中读取群集信息,还可以编辑群集名称。所做的更改将保留在群集注册表中。

例如,如果用户从更名lon.prod
nyc.prod
,该结果confluent cluster list
命令是这样的:


> confluent cluster list
> Name | Type | Kafka ID | Component ID | Hosts | Protocol
>+----------------+-----------------+-----------+--------------+------------------------------+----------------+
> nyc.prod | kafka-cluster | jRCEm14eR_SadwCWqhXV-w | | localhost:9192 | SASL_PLAINTEXT

结论

总之,我们建议您利用群集注册表作为Control Center群集信息的来源。这只是第一步。我们希望将来会在集成故事中添加更多内容,请继续关注。

如果您还没有,但是现在想开始使用Cluster Registry,可以下载Confluent Platform




文章转载自Kafka Confluent 兴趣爱好者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论