kubernetes 到底要用在什麼地方... ?
資料庫嘛,大多數人都不放 container,而且 db 本身也無法 auto scale…
Microservice,這的確需要個 orchestra 的工具,可是如果你不是 netflix/amazon,用 microservice 只是自找麻煩...
Web application server 呢?web server 沒有 state,隨便開隨便都能跑起來,要 orchestra 什麼...
分散式運算的場合, 需要快速調度各種資源的操作應該就是 kubernates 的強項吧, 各種 big data 框架(hadoop, spark, storm....) 都可以在上面運作的很好. DB 用不到 kubernates 這有點不精確, 關聯式 db 或許不適合但 NoSQL db (mongodb, Cassandra...) 到是很多人架在 container 上運作. 而許多 AI, 機器學習框架 (tensorflow..) 也是在 kubernates 上跑的喔
那可不可以分享一下台灣有佈署 mongodb, cassandra 之類的 (> 10 nodes) 在 kubernetes 的?
是類似廣告商/電子商務之類的公司做這樣的佈署嗎?
DB花一堆功夫tune disk IO結果被丟到抽象層裡qq 這跟是不是NoSQL無關阿,除非是redis只吃ram就沒話說
所以我覺得放 cassandra 到 container 有點怪怪的,不曉得實務上有沒有人這樣做...
好奇查了一下, Uber 有但是用 mesos 當 orchestration platform. 另外一個就是 kubernates 跟 cassandra 的實作了. 每秒上百萬次的跨數據中心寫操作,Uber是如何使用Cassandra處理的?1 使用Kubernets Pet Set部署上千个Cassandra实例2
謝資源
Uber發現把Cassandra直接運行在服務器上,與把它運行在用Mesos管理的容器中相比,兩者幾乎沒有什麼性能差別,只有5-10%的損耗。
性能看起來不錯,平均讀延遲13ms,寫延遲25ms,99%的測試數據都很令人滿意
有點矛盾,write latency 在 cassandra 裡大概都是個位數 ms 或更低,高到 25ms 有點離譜。大概真的是 container 的代價吧,不過他們的目標是 scale up,而不是快。也真的做到了。
對於Uber來說做這個決定並不是那麼困難。他們現金流非常充裕,所以能夠請得到頂尖的人才,可以獲得所需要的最好資源,以此來創建、維護以及更新這樣複雜的系統
有錢才能這樣玩…
今天剛好有一篇 Experiences with running PostgreSQL on Kubernetes1
作者說了一句:
Managing Postgres on Kubernetes is a full time job
說服我放棄了