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

Kubernetes K8S上的Flink:如何为集群提供Flink配置?,kubernetes,apache-flink,Kubernetes,Apache Flink,我正在创建一个集群,但不清楚如何为集群提供支持?e、 例如,我想指定jobmanager.heap.size=2048m根据文档,所有配置都必须通过yaml配置文件传递 似乎jobmanager.heap.size是一个可以配置的常见选项 也就是说,在提供此配置文件时,kubernetes上的方法略有不同 谜题的下一部分是弄清楚您试图启动的容器的当前start命令是什么。我假设您使用的是,这很好,因为Dockerfile是开源的(底部链接到repo)。他们正在使用一个复杂的脚本来启动flink容

我正在创建一个集群,但不清楚如何为集群提供支持?e、 例如,我想指定
jobmanager.heap.size=2048m

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

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

也就是说,在提供此配置文件时,kubernetes上的方法略有不同

谜题的下一部分是弄清楚您试图启动的容器的当前start命令是什么。我假设您使用的是,这很好,因为Dockerfile是开源的(底部链接到repo)。他们正在使用一个复杂的脚本来启动flink容器,但是如果您仔细阅读该脚本,您将看到它正在从
/opt/flink/conf/flink-conf.yaml
读取配置yaml。与其试图改变这一点,只需在pod中的确切路径上装载一个yaml文件,并使用您的配置值,可能会更容易

这是我的建议

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

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

因此,我设想您将创建
flink-conf.yaml
,内容如下:

jobmanager.heap.size: 2048m
然后将其安装在kubernetes吊舱中的
/opt/flink/conf/flink-conf.yaml
,它应该可以工作

从kubernetes的角度来看,为yaml文件创建一个配置映射,并将配置映射作为一个文件装载到pod中可能是最有意义的

具体来说,您最感兴趣的是


最后,我将调用它,但我不推荐它,因为flink的所有者目前已经将其标记为孵化特性,他们已经开始提供,我可以看到他们正在将
flink-conf.yaml
作为配置映射传递到(忽略
{}中包围的值)
-这是helm模板语法)。他们就在这里。

谢谢你全面的回答,我从中学到了很多。