我正在按照Flink Kubernetes Setup创建集群,但是尚不清楚如何为集群提供Flink configuration?例如,我要指定jobmanager.heap.size=2048m
。
答案 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 file和Adding a config map as a volume感兴趣
最后,我会指出这一点,但我不建议这样做,因为flink的所有者目前已将其标记为一种孵化功能,他们已经开始提供helm chart for Flink,并且我可以看到他们将flink-conf.yaml
作为helm chart templates中的配置映射传递(忽略由{{ }}
包围的值-这是头盔模板语法)。他们mount their config map into a pod在这里。