![](/img/trans.png)
[英]How to achieve high availability and load balancing in Kubernetes cluster
[英]How to achieve JobManager High Availability in a Kubernetes Flink Cluster?
Flink 官方文檔提供了 Standalone 和 Yarn Flink 集群的jobmanager 高可用解決方案。 但是使用 Kubernetes Flink 集群應該怎么做才能實現高可用性呢?
從文檔的Kubernetes 設置部分來看,我們似乎在部署到 Kubernetes 集群時只部署了一個 Jobmanager。 那么Kubernetes Flink集群如何實現HA呢?
官方文檔說job manager的高可用是為了處理job manager崩潰的情況。 所以只需要一個作業管理器,但你想處理它出現故障的情況。 在 Kubernetes 上,如果它出現故障,那么 Kubernetes 應該檢測到這一點並自動重新啟動它。 所以你不需要運行它的更多副本。
(該文檔明確說明了將 yarn 用於 ha 。它似乎並未針對 Kubernetes說明這一點,但重新啟動失敗的 Pod 是Kubernetes 的標准行為。)
任務管理器默認配置與官方K8S資源上Kubernetes多個副本運行(見“副本”條目中的資源),但作業管理是沒有的。 ( 在掌舵圖中也是如此。)所以我相信作業管理器不需要它 - 我建議使用單個作業管理器運行,除非您遇到特定問題。
我同意 Ryan 關於 Kubernetes 滿足 HA 部署的大部分要求這一事實的回答。
使用 Kubernetes,您可以使用基於文件的 HA 運行 Flink 作業集群,而不是使用 ZooKeeper 或其等效物。
你可以在這個 github repo 中找到一個關於如何正確設置它的例子(有或沒有 HA)。
人們可能還會發現那些解釋如何在 k8s 上正確部署 flink 作業集群並在沒有 zookeeper 的情況下實現基於文件的高可用性的博文很有用。
(披露:我寫了帖子並設置了回購)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.