【发布时间】:2019-05-31 05:46:36
【问题描述】:
我想在 OpenShift 上运行 Kafka 连接工作程序。我想使用 OpenShift 来(自动)横向扩展。但是,我不清楚如何传递连接器配置,如果它通常是在启动后通过 REST 调用手动提供给特定工作人员的。
因此,问题是是否可以在不调用 REST 的情况下在启动时向工作人员提供完整的连接器规范。
【问题讨论】:
标签: kubernetes openshift apache-kafka-connect
我想在 OpenShift 上运行 Kafka 连接工作程序。我想使用 OpenShift 来(自动)横向扩展。但是,我不清楚如何传递连接器配置,如果它通常是在启动后通过 REST 调用手动提供给特定工作人员的。
因此,问题是是否可以在不调用 REST 的情况下在启动时向工作人员提供完整的连接器规范。
【问题讨论】:
标签: kubernetes openshift apache-kafka-connect
在没有 REST 调用的启动时
不,不是。见the issue I created for it。
不过,您只需使用 REST 加载连接器配置一次。工作人员配置完全由环境变量驱动,并且扩展工作人员不需要发布新的连接器配置来扩展它们,除非您确实想增加 tasks.max。但是无论如何,您都可以将其作为 Kafka 分区的数量开始,这就是您对 Connect 的限制,即使只有一个工作人员也是如此。
【讨论】:
就个人而言,我认为您可以使用一些模板将信息注入kafka pod,例如deploymentConfig、statefulset、daemonset 等。
例如下面这个链接说明了一个ruby应用如何通过注入环境变量来获取mysql连接信息。
Defining a Service for an External Database
env:
-
name: "MYSQL_USER"
value: "${MYSQL_USER}"
-
name: "MYSQL_PASSWORD"
value: "${MYSQL_PASSWORD}"
-
name: "MYSQL_DATABASE"
value: "${MYSQL_DATABASE}"
和上面的例子一样,你应该启动一些wrapper start script或binary of related application,它们是通过获取连接信息为environment variables来配置的。
【讨论】: