我想在OpenShift上运行Kafka connect workers。我想使用 OpenShift 来(自动)横向扩展。但是,如果连接器配置通常在启动后通过 REST 调用手动提供给特定工作线程,我不清楚如何传递连接器配置。
因此,问题是是否可以在没有 REST 调用的情况下在启动时向工作线程提供连接器的完整规范。
在没有 REST 调用的启动时
不,不是。请参阅我为其创建的问题。
但是,您只需使用 REST 加载一次连接器配置。辅助角色配置完全由环境变量驱动,缩放辅助角色不需要发布新的连接器配置来缩放它们,除非你确实想要增加tasks.max
例如。但是无论如何,您都可以将其作为 Kafka 分区的数量开始,这是您对 Connect 的限制,即使只有一个工作线程。
我个人认为您可以使用一些模板将信息注入kafka
pods,例如deploymentConfig
、statefulset
、daemonset
等。
例如,以下链接解释了一个 ruby 应用程序如何通过注入环境变量来获取 mysql 连接信息。
-
为外部数据库定义服务
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
。