![](/img/trans.png)
[英]Problem with running Apache Beam jobs on remote Flink cluster on Kubernetes
[英]Flink session cluster and jobs submission in Kubernetes
我們的團隊在我們的 K8S 集群中建立了一個 Flink Session Cluster。 我們選擇了 Flink Session Cluster 而不是 Job Cluster,因為我們有許多不同的 Flink Job,所以我們希望將 Flink 的開發和部署與我們的作業解耦。 我們的 Flink 設置包含:
我們在單獨的存儲庫中開發我們的作業,並在代碼合並時部署到 Flink 集群。
現在,我們注意到JobManager 作為K8S 中的一個pod 可以隨時被K8S 重新部署。 因此,一旦重新部署,它就會失去所有工作。 為了解決這個問題,我們開發了一個腳本來持續監控 Flink 中的作業,如果作業沒有運行,腳本會重新提交作業到集群。 由於腳本可能需要一些時間來發現和重新提交作業,因此經常會出現服務中斷的情況,我們正在考慮是否可以改進這種情況。
到目前為止,我們有一些想法或問題:
一種可能的解決方案是:當(重新)部署 JobManager 時,它將獲取最新的 Jobs jar 並運行作業。 該解決方案總體上看起來不錯。 盡管如此,由於我們的作業是在單獨的 repo 中開發的,我們需要一個解決方案讓集群在作業發生變化時注意到最新的作業,要么 JobManager 不斷輪詢最新的作業 jar,要么作業 repo 部署最新的作業 jar。
我看到 Flink HA 功能可以存儲檢查點/保存點,但不確定 Flink HA 是否已經可以處理這個重新部署問題?
有沒有人對此有任何意見或建議? 謝謝!
是的,Flink HA 會解決你關心的 JobManager 故障轉移問題。 新的作業管理器將從 HA 存儲中獲取有關正在(應該)運行的作業、它們的 jar、檢查點狀態等的信息。
另請注意,Flink 1.10 包含對 Kubernetes 會話集群的本機支持的測試版。 請參閱文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.