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 ...

September 22, 2020 · 1 min · 179 words · chechiachang

Gcp Preemptible Instance

前言 鐵人賽的第二部分,要帶來公有雲省錢系列文章。 架構的成本,很多時候會影響架構的設計與需求。公司的營運都需要在成本與需求之前平衡,成本其實是影響公司決策的重要因素。身為架構管理員,應該要試著量化並且進行成本管理,提出解決方案時,也需要思考如何幫公司開源節流。 一昧消減架構的成本也未必是最佳方案,帳面上消減的成本有時也會反映在其他地方,例如:使用比較便宜的解決方案,或是較低的算力,但卻造成維運需要花更多時間維護,造成隱性的人力成本消耗。用什麼替代方案 (trade-off) 省了這些錢。 Kubernetes 是一個很好的例子:例如:有人說「Kubernetes 可以省錢」,但也有人說「Kubernetes 產生的 Overhead 太重會虧錢」。 「要不要導入 Kubernetes 是一個好問題」。應該回歸基本的需求,了解需求是什麼。例如:Google 當初開發容器管理平台,是面對什麼樣的使用需求,最終開發出 Kubernetes,各位可以回顧前篇文章「Borg Omega and Kubernete,Kubernetes 的前日今生,與 Google 十餘年的容器化技術」,從 Google 的角度理解容器管理平台,反思自身團隊的實際需求。 這套解決方案是否真的適合團隊,解決方案帶來的效果到底是怎樣呢?希望看完這系列文章後,能幫助各位,從成本面思考這些重要的問題。 這篇使用 GCP 的原因,除了是我最熟悉的公有雲外,也是因為 GCP 提供的免費額度,讓我可以很輕鬆地作為社群文章的 Demo,如果有別家雲平台有提供相同方案,請留言告訴我,我可能就會多開幾家不同的範例。 先占虛擬機 TL;DR 先占虛擬機為隨選虛擬機定價的 2-3 折,使用先占虛擬機可能可以節省 7 成的雲平台支出 先占虛擬機比起隨選虛擬機,外加有諸多限制,e.g. 最長壽命 24 hr、雲平台會主動終止先占虛擬機…等 配合使用自動水平擴展 (auto-scaler),讓舊的先占虛擬機回收的同時,去購買新的先占虛擬機 配合可容錯 (fault-tolerent) 的分散式應用,讓應用可以無痛在虛擬機切換轉移,不影響服務 要讓應用可以容錯,需要做非常多事情 搭配 kubernetes ,自動化管理來簡化工作 配合正確的設定,可以穩定的執行有狀態的分散式資料庫或儲存庫 或是看 Google 官方 Blog:Cutting costs with Google Kubernetes Engine: using the cluster autoscaler and Preemptible VMs 預計內容 ...

September 21, 2020 · 1 min · 94 words · chechiachang

Kubernetes Custom Resource Deployment

2020 It邦幫忙鐵人賽 系列文章 這邊改了一些大綱,原本的內容還有一些 kubernetes 的設定,以及 GCP 相關服務的介紹。但既然我們的主題是把東西搬上 k8s 的踩雷旅程,那我們就繼續搬,繼續踩。剩下的時間大概會有四個題目。 Nginx Ingress (3) Deploy Nginx Ingress Controller Configure Nginx Ingress Cert-manager (3) Deploy cert-manager How cert-manager work Cert-manager complete workflow Kubernetes CRD & Operator-sdk (3) Introduction about custom resource Deployment & Usage Deployment & Usage 由於我比較熟悉 GCP / GKE 的服務,這篇的操作過程都會以 GCP 平台作為範例,不過操作過程大體上是跨平台通用的。 寫文章真的是體力活,覺得我的文章還有參考價值,請左邊幫我點讚按個喜歡,右上角幫我按個追縱,底下歡迎留言討論。給我一點繼續走下去的動力。 對我的文章有興趣,歡迎到我的網站上 https://chechia.net 閱讀其他技術文章,有任何謬誤也請各方大德直接聯繫我,感激不盡。 摘要 CRD 內容 Deploy CRD Use custom resource Recap 在上次的 cert-manager 內容中我們走過 cert-manager 的安裝步驟,其中有一個步驟是 apply cert-manager 的 manigests 檔案 *.yaml) ...

October 13, 2019 · 4 min · 696 words · chechiachang

Kubernetes Custom Resources Basic

2020 It邦幫忙鐵人賽 系列文章 這邊改了一些大綱,原本的內容還有一些 kubernetes 的設定,以及 GCP 相關服務的介紹。但既然我們的主題是把東西搬上 k8s 的踩雷旅程,那我們就繼續搬,繼續踩。剩下的時間大概會有四個題目。 Nginx Ingress (3) Deploy Nginx Ingress Controller Configure Nginx Ingress Cert-manager (3) Deploy cert-manager How cert-manager work Cert-manager complete workflow Kubernetes CRD & Operator-sdk (3) Introduction about custom resource Deployment & Usage Deployment & Usage 由於我比較熟悉 GCP / GKE 的服務,這篇的操作過程都會以 GCP 平台作為範例,不過操作過程大體上是跨平台通用的。 寫文章真的是體力活,覺得我的文章還有參考價值,請左邊幫我點讚按個喜歡,右上角幫我按個追縱,底下歡迎留言討論。給我一點繼續走下去的動力。 對我的文章有興趣,歡迎到我的網站上 https://chechia.net 閱讀其他技術文章,有任何謬誤也請各方大德直接聯繫我,感激不盡。 摘要 custom resources custom controllers 簡介 custom resources Kubernetes 預先定義許多 resource ,這些 resource 是 kubernetes API 預先設置的 API objects,例如 kubernetes pods resource 包含許多 pods 物件。 ...

October 13, 2019 · 3 min · 573 words · chechiachang

Self-host ELK stack - Installation

2020 It邦幫忙鐵人賽 系列文章 Self-host ELK stack on GCP Secure ELK Stask 監測 Google Compute Engine 上服務的各項數據 監測 Google Kubernetes Engine 的各項數據 是否選擇 ELK 作為解決方案 使用 logstash pipeline 做數據前處理 Elasticsearch 日常維護:數據清理,效能調校,永久儲存 Debug ELK stack on GCP 作為範例的 ELK 的版本是當前的 stable release 7.3.1。 由於我比較熟悉 GCP / GKE 的服務,這篇的操作過程都會以 GCP 平台作為範例,不過操作過程大體上是跨平台通用的。 對我的文章有興趣,歡迎到我的網站上 https://chechia.net 閱讀其他技術文章,有任何謬誤也請各方大德直接聯繫我,感激不盡。 – 簡介 ELK stack 官方說明文件 ELK 的元件 Elasticsearch: 基於 Lucene 的分散式全文搜索引擎 Logstash: 數據處理 pipeline Kibana: ELK stack 的管理後台與數據視覺化工具 Beats: 輕量級的應用端數據收集器,會從被監控端收集 log 與監控數據(metrics) ELK 的工作流程 beats -> (logstash) -> elasticsearch -> kibana ...

September 15, 2019 · 4 min · 839 words · chechiachang