考虑到 kerberos 密码更改,如何实现长时间的 运行 Flink 作业?

How to achieve a long running Flink job considering that kerberos password changes?

关于长 运行 flink(或 spark)作业的讨论省略了关于如何避免定期滚动密码失败的讨论。

密码滚动将使应用程序使用的任何密钥表失效,一旦当前会话票证到期,作业将失败,这可能是 24 小时post 密码更改

我目前在 flink 中没有看到任何支持密码滚动时连续 运行 的东西。

该应用程序将失败,必须从头开始重新安排。

这space中有什么技巧可以避免这种失败吗?

例如,是否有一项功能可以让我们定期刷新密钥表?有人这样做吗?

Flink 目前不支持任何类型的 keytab 刷新,到目前为止,人们对此功能几乎没有兴趣。密钥表被认为寿命很长并且很少更改。它类似于 AWS 中用于获取数据库密码的角色。密码经常轮换,但角色几乎从不改变。

因此,目前没有办法,只能让整个应用程序失败并重新安排。如果 keytab 更改经常出现,我会将其自动化并主动重新安排下班时间。如需更具体的提示,如果您使用的是 YARN 或 K8s,则可以添加到 运行 Flink。

如果由于状态大小和 SLA 而无法重新启动,您可以尝试实现自己的 SecurityModule 来实现 keytab 刷新。或者,您可以在 Jira 上提交功能请求。获得更多选票的功能可以更快地实现。