我有以下项目: https://github.com/abil/kafka-connect-abil
在本地运行 dockerfile 效果非常好。 我尝试了一些方法让它在 k8s 中工作......
我尝试过 Kompose。这创建了正确的 .yaml 文件,以及与挂载路径“config”正确链接的持久卷,但运行时出现错误:
java.nio.file.NoSuchFileException: /config/docker-compose-worker-distributed.properties
有没有办法将属性文件添加到持久卷? 我试过了
kubectl cp config/docker-compose-worker-distributed.properties connector:/
但我得到:
error: unable to upgrade connection: container not found ("connector")
我还尝试使用 docker tag mycontainerreg.azure.io/name 标记图像,然后进行 docker Push,但这也失败了,也许是因为没有为其分配足够的资源?
主要是我只需要连接器从 AKS 中运行的 Kafka (Apache) 移植到 Ably,我知道如果我购买 Enterprise,我可以将连接器添加到 Confluence 云,但这很昂贵!
您需要创建一个包含属性的 configMap 文件,并在部署.yml 中指定它
这是名为 properties.yml
的 configMap 示例apiVersion: v1
kind: ConfigMap
metadata:
name: kafka-properties
binaryData:
propertieA: >- valueA
在部署 yaml 文件中,您需要添加对创建的 configMap 的引用
volumes:
- name: kafka-properties-volume
configMap:
name: kafka-properties
查看官方文档关于configMaps
希望这有帮助
您不会提供文件。容器已经拥有它,并且安装一个可能会被容器入口点脚本覆盖,因为这就是 Confluence 图像所做的
将链接的插件安装到容器中,例如 Confluence 连接镜像(这就是他们的 Dockerfile 已经做的,但使用 Maven 而不是 Confluence Hub 客户端,后者也适用于 Apache Kafka),或者使用 Strimzi(而不是 Kompose),然后你可以使用
CONNECT_BOOTSTRAP_SERVERS
等环境变量配置工作器属性文件,也可以使用 Kafka Connect Strimzi 资源规范与 k8s 资源文件本地配置。这将模板化分布式工作线程属性文件作为容器启动过程的一部分
连接器本身将使用 REST API 的 JSON 负载进行配置,而不是文件