K8S上的Flink:如何为群集提供Flink配置?

时间:2019-08-13 21:10:44

标签: kubernetes apache-flink

我正在按照Flink Kubernetes Setup创建集群,但是尚不清楚如何为集群提供Flink configuration?例如,我要指定jobmanager.heap.size=2048m

1 个答案:

答案 0 :(得分:3)

根据文档,所有配置都必须通过yaml配置文件传递。

似乎jobmanager.heap.size是可以配置的常见选项。

话虽这么说,但在提供此配置文件时,使用kubernetes的方法有所不同。

下一个难题是弄清楚您要启动的容器的当前启动命令是什么。我假设您使用的official flink docker image很好,因为Dockerfile是开源的(链接到底部的repo)。他们使用复杂的脚本来启动flink容器,但是如果您对该脚本进行深入研究,您会发现它正在从/opt/flink/conf/flink-conf.yaml读取配置yaml。与其尝试更改它,不如将yaml文件挂载到具有您的配置值的pod的确切路径上,可能会更容易。

这里是github repo that has these Dockerfiles for reference

下一个问题是yaml文件应该是什么样的? 从他们的文档中:

  

所有配置都在conf / flink-conf.yaml中完成,这是预期的   是格式为key:value的YAML键值对的平面集合。

因此,我想您将使用以下内容创建flink-conf.yaml

jobmanager.heap.size: 2048m

然后将其安装在/opt/flink/conf/flink-conf.yaml的kubernetes容器中,它应该可以工作。

从kubernetes的角度来看,为该yaml文件创建配置映射,然后将配置映射作为文件安装在pod中可能是最有意义的。 See reference docs

特别是,您对creating a configmap from a fileAdding a config map as a volume感兴趣

最后,我会指出这一点,但我不建议这样做,因为flink的所有者目前已将其标记为一种孵化功能,他们已经开始提供helm chart for Flink,并且我可以看到他们将flink-conf.yaml作为helm chart templates中的配置映射传递(忽略由{{ }}包围的值-这是头盔模板语法)。他们mount their config map into a pod在这里。