跳轉到主要內容
工程的博客

我們如何建造的磚在穀歌Kubernetes引擎(GKE)

一個集裝箱多重雲數據的方法,分析和人工智能

2021年8月6日, 工程的博客

分享這篇文章

我們發布的磚在穀歌的雲平台(GCP)是對一個統一的一個重要裏程碑數據,分析和人工智能Beplay体育安卓版本平台,確實是多重雲。磚豐富,聯合開發服務,允許你將你所有的數據存儲在一個簡單,開放lakehouse平台,是基於標準容器運行穀歌Kubernetes引擎之上(GKE)。Beplay体育安卓版本

當我們發布磚豐富,反饋是“隻是工作!”However, some of you asked deeper questions about Databricks and Kubernetes, so we’ve decided to share reasons for using GKE, our learnings and some key implementation details.

為什麼穀歌Kubernetes引擎?

開源軟件和容器

磚,開源是核心,我們是誰,這就是為什麼我們繼續創造和貢獻主要的開源項目,如Apache火花™,MLflow,三角洲湖三角洲分享。作為一家公司,我們也回到社區和每天使用開源。

我們多年來一直在使用容器。例如,在MLflow,用戶構建機器學習(ML)模型作為碼頭工人圖像,存儲在一個容器注冊表,然後部署和運行模型從注冊表。

另一個例子是磚筆記本:版本控製容器圖像簡化支持多種火花,Python和Scala版本,和容器導致更快的迭代軟件開發和生產係統更穩定。

Kubernetes和超大型

我們充分意識到一個容器編製係統,如Kubernetes,也帶來了自身的挑戰。Kubernetes的基本概念和其豐富的功能需求一位經驗豐富的工程團隊和知識淵博的數據。

磚,然而,已經成長為一個超大型的環境在短短幾年內成功地建立在容器創建開源軟件。客戶自旋beplay体育app下载地址向上每天數以百萬計的實例,我們支持成千上萬的每月數據科學家。

安全、簡單

最重要的是提供新功能的數據工程師和科學家的數據。在設計磚豐富,我們的工程團隊看著最好的滿足我們的安全選項,可伸縮性需求。我們的目標是簡化實現,更少關注底層基礎設施、依賴關係和實例的生命周期。Kubernetes,我們的工程師可以利用來自開源社區的強勁發展勢頭,推動基礎設施邏輯和安全。

GKE和其他穀歌雲服務

我們批判性地評估所需的操作技能和獲得的利益之間的權衡從操作大型上遊Kubernetes環境生產和最終決定不使用自我管理Kubernetes集群。

選擇GKE而不是主要原因之一是迅速采用新Kubernetes版本和Google的基礎設施安全的優先事項。Kubernetes GKE從穀歌,最初的創造者,是市場上最先進的Kubernetes管理服務。

一方麵,磚與所有關鍵集成GCP的雲服務,如穀歌雲存儲,穀歌BigQuery和穀歌美人。另一方麵,我們的實現GKE之上運行。

磚在穀歌Kubernetes引擎

把分布式係統分解為一個控製平麵和一個用戶平麵是一個著名的設計模式。控製飛機的任務管理和客戶服務的配置。數據平麵,它通常是更大的,是為執行客戶請求。

磚豐富遵循相同的模式。磚操作控製平麵的創建、管理和監視數據平麵GCP賬戶的客戶。數據平麵包含司機和執行器節點集群的火花。

GKE集群、名稱空間和自定義資源定義

當磚賬戶管理啟動一個新磚工作區,創建相應的數據平麵對GCP賬戶作為地區客戶的GKE集群在VPC(參見圖1)。有一個工作區,1:1關係GKE集群和VPC。工作區用戶從來沒有直接與數據平麵資源交互。相反,他們這樣做間接地通過控製飛機,磚執行訪問控製和資源之間的隔離用戶工作區。磚也重新分配GKE計算資源智能根據客戶使用模式,節省成本。

磚在穀歌Kubernetes引擎
圖1:磚使用Google Kubernetes引擎

GKE集群和節點池

GKE集群是引導係統節點池致力於運行workspace-wide可信的服務。推出一個磚集群時,用戶指定遺囑執行人節點的數量,以及機器類型司機節點和執行器節點。集群管理器,控製平麵的一部分,創建和維護一個GKE nodepool為每個這些機器類型;驅動程序和執行器節點通常運行在不同的機器類型,因此從不同的節點池。

名稱空間

Kubernetes提供名稱空間創建虛擬集群範圍名稱(因此得名)。個人磚集群通過Kubernetes彼此分離的名稱空間在一個GKE集群和單個磚工作區可以包含數百個磚集群。GCP網絡政策隔離磚集群網絡在同一GKE集群,進一步提高安全。磚集群中的一個節點隻能與同一集群中的其他節點(或使用NAT網關訪問互聯網或其它公共GCP服務)。

自定義資源定義

Kubernetes從頭設計允許使用Kubernetes定製和擴展的API自定義資源定義(CRD)。每一磚集群在一個工作區,我們部署一個磚Kubernetes CRD運行時(DBR)。

Nodepools、豆莢和sidecars

火花司機和執行人部署Kubernetes豆莢,它是運行在指定的節點相應的nodepool Kubernetes吊艙節點選擇器。隻使用一個GKE節點驅動艙或執行人吊艙。與Kubernetes集群名稱空間配置內存請求和限製。

在每個Kubernetes節點,磚也經營一些可信的守護進程的容器以及司機或執行人容器。這些守護進程可信的雙輪馬車服務,促進數據訪問和日誌收集的節點上。司機或執行人容器隻能與守護進程交互的容器在同一倉通過限製接口。

常見問題(FAQ)

問:我可以部署自己的豆莢在GKE集群提供的磚嗎?

你不能訪問數據磚GKE集群。是受限製的最大安全性和配置為最小的資源使用情況。

問:我在自定義部署磚GKE集群?

我們不支持這個。

問:我可以訪問數據磚GKE集群kubectl嗎?

盡管GKE集群運行的數據平麵在客戶賬戶,默認訪問限製和防火牆設置,以防止未經授權的訪問。

問:磚GKE更快,(如集群啟動時間),比磚在vm或其他的雲嗎?

我們鼓勵你做你自己的測量,因為這個問題的答案取決於許多因素。磚多重雲提供的一個好處是,你可以快速運行這些測試。我們最初的測試表明,對大量並發的工人,冷啟動時間快於GKE相比其他雲服務。ssd與當地可比實例並運行某些火花工作負載相比稍快和類似的其他一些雲計算核心/內存/磁盤規範。

問:你為什麼不使用一個GKE每磚集群的集群?

效率的原因。磚創建集群的頻繁,其中有一些是短暫的(例如,短時間運行的工作)。

問:需要多長時間和100個節點啟動集群?

創業——甚至超過100的大型集群節點——發生在平行,從而啟動時間不依賴於集群的大小。我們建議你測量你的個人設置的啟動時間和設置。

問:我怎樣才能優化豆莢是如何分配給一個節點成本效率?我想安排一些火花執行人吊艙到一個更大的節點。

豆莢是由磚為各自的最優配置使用(司機或工作節點)。

問:我可以帶我的VPC GKE集群?

請聯係你的磚客戶經理對我們的未來路線圖如果你感興趣這個特性。

問:它是安全的,磚內運行多個磚集群的單一GKE集群?

磚集群相互完全孤立使用Kubernetes GCP網絡名稱空間和政策。隻能從相同的磚磚集群的工作區分享GKE集群為降低成本和更快的準備。如果有多個工作區將會運行在自己的GKE集群。

問:不GKE添加額外的網絡開銷相比,隻是有虛擬機?

我們最初的GCP的iperf3基準測試n1-standard-4 us-west2/1實例顯示優秀inter-pod吞吐量超過9 Gbps。GCP一般來說提供了一個高吞吐量連接互聯網與非常低的延遲。

問:現在,磚是完全的集裝箱,我可以把磚圖片和使用它們自己,(例如,在我的本地集群Kubernetes) ?

磚目前並不支持這一點。

問:磚豐富的限製我們一個阿茲在一個區域嗎?節點分配GKE實際上是如何工作的呢?

GKE集群使用一個地區所有的阿茲。

問:磚豐富的包括哪些功能?

請查看這個鏈接獲得最新的信息。

作者要感謝Silviu托範風暴對他有價值的建議和支持。

GCP免費試穿磚!

免費試著磚

相關的帖子

看到所有工程的博客的帖子
Baidu
map