2.2.6. 从使用 S2I 的 Kafka Connect 迁移到 Kafka Connect
对 Kafka Connect with S2I 和 KafkaConnectS2I
资源的支持已弃用。这会在 KafkaConnect
资源引入 构建配置
属性,用于使用连接器插件来自动构建容器镜像。
这个步骤描述了如何使用 S2I 实例将 Kafka Connect 迁移到标准 Kafka Connect 实例。为此,您需要配置一个新的 KafkaConnect
自定义资源来替换 KafkaConnectS2I
资源,然后删除该资源。
迁移过程涉及从 KafkaConnectS2I
实例删除到新 KafkaConnect
实例部署成功时的停机时间。在此期间,连接器将不会运行和处理数据。但是,更改后,它们应从停止的时间点继续。
先决条件
-
使用 KafkaConnectS2I 配置部署带有 S
2I 的 Kafka
Connect - 与 S2I 的 Kafka Connect 使用带有使用 S2I 构建添加的连接器的镜像
-
sink 和源连接器实例是使用
KafkaConnector
资源或 Kafka Connect REST API 创建的
流程
-
使用与用于
Kafka
自定义资源。connectS2I 资源的名称相同的名称创建新的 Kafka
Connect -
将
KafkaConnectS2I
资源属性复制到KafkaConnect
资源。 如果指定,请确保使用相同的
spec.config
属性:-
group.id
-
offset.storage.topic
-
config.storage.topic
status.storage.topic
如果未指定这些属性,则使用默认值。在这种情况下,也将其从
KafkaConnect
资源配置中退出。
现在,将特定于
KafkaConnect
资源的配置添加到新资源中。-
添加
构建配置
,以配置您要添加到 Kafka Connect 部署中的所有连接器和其他库。注意或者,您也可以使用连接器手动构建新镜像,并使用
.spec.image
属性指定它。删除旧的
KafkaConnectS2I
资源:oc delete -f MY-KAFKA-CONNECT-S2I-CONFIG-FILE
将 MY-KAFKA-CONNECT-S2I-CONFIG-FILE 替换为包含
KafkaConnectS2I
资源配置的文件名。另外,您可以指定资源的名称:
oc delete kafkaconnects2i MY-KAFKA-CONNECT-S2I
将 MY-KAFKA-CONNECT-S2I 替换为
KafkaConnectS2I
资源的名称。等待 Kafka Connect with S2I 部署被删除,并且 pod 已被删除。
警告不得删除任何其他资源。
部署新的
KafkaConnect
资源:oc apply -f MY-KAFKA-CONNECT-CONFIG-FILE
将 MY-KAFKA-CONNECT-CONFIG-FILE 替换为包含新
KafkaConnect
资源配置的文件名称。等待新镜像构建好,部署创建好,并且容器集已启动。
如果您使用
KafkaConnector
资源来管理 Kafka Connect 连接器,请检查所有预期的连接器是否存在并正在运行:oc get kctr --selector strimzi.io/cluster=MY-KAFKA-CONNECT-CLUSTER -o name
将 MY-KAFKA-CONNECT-CLUSTER 替换为 Kafka Connect 集群的名称。
通过 Kafka Connect 存储自动恢复连接器。即使您使用 Kafka Connect REST API 管理它们,您不应该手动重新创建它们。