Kafka 如何使用.properties文件将Dockerfile加载到K8s(AKS)中?

alen0pnh  于 2023-08-02  发布在  Apache
关注(0)|答案(2)|浏览(150)

我有以下项目:https://github.com/ably/kafka-connect-ably
在本地运行dockerfile工作得很好。我已经尝试了几种方法让它在k8s中工作。。
我试过组合。这创建了正确的.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标签mycontainerreg.azure.io/name标记图像,然后docker推送,但也失败了,也许是因为没有足够的资源分配给它?
主要是我只需要连接器从Kafka(Apache)运行在AKS端口到Ably,我知道我可以添加连接器到Confluent云,如果我购买企业,但这是昂贵的!

cyej8jka

cyej8jka1#

您需要创建一个包含属性的configMap文件,并在deployment.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的官方documentation
希望这对你有帮助

yhuiod9q

yhuiod9q2#

你不会提供文件的。容器已经有了它,安装一个可能会被容器入口点脚本覆盖,这就是Confluent镜像所做的
Install the linked plugin into a container such as Confluent connect image(这是他们的Dockerfile已经做的,但使用Maven而不是Confluent Hub客户端,后者也适用于Apache Kafka),或者使用Strimzi(而不是Kompose),您可以使用环境变量(如CONNECT_BOOTSTRAP_SERVERS)配置worker属性文件,或者使用Kafka Connect Strimzi资源规范与k8s资源文件进行本地连接。这将作为容器启动过程的一部分对分布式工作者属性文件进行模板化
连接器本身将使用JSON有效负载配置到REST API,而不是文件

相关问题