Gcp Preemptible Instance Requirement Distributed
我們以下幾個需求: 執行短期的 batch job 執行長期的 user-facing API server 執行長期的 stateful 資料庫、儲存庫 該不該在 Kubernetes 上面跑 database? TL;DR ,如果你剛開始考慮這件事,通常的答案都是否定的 等等,我們這邊不是討論該不該上 Kuberentes ,而是該不該使用先占虛擬機吧。然而由於先占虛擬機節點的諸多限制,光憑先占虛擬機並不適合跑任何持久性的儲存庫。我們這邊仰賴 Kubernetes 的網路功能 (e.g. 服務發現),與自動管理 (e.g. health check,HPA,auto-scaler),基於先占虛擬機,建構高可用性的服務架構,來支撐高可用,且有狀態的的儲存庫。 應用是否適合部署到 Kubernetes 上,可以看這篇 Google Blog: To run or not to run a database on Kubernetes: What to consider,如果大家有興趣,再留言告訴我,我再進行中文翻譯。 文中針對三個可能的方案做分析,以 MySQL 為例: Sass,GCP 的 Cloud SQL 最低的管理維運成本 自架 MySQL 在 GCP 的 VM 上,自行管理 自負完全的管理責任,包含可用性,備份 (backup),以及容錯移轉 (failover) 自架 MySQL 在 Kubernetes 上 自負完全的管理責任 Kubernetes 的複雜抽象層,會加重維運工作的複雜程度 然而 RDBMS 的提供商,自家也提供 Operator ...