1. 程式人生 > >容器化之後如何節省雲端成本?(二十六)

容器化之後如何節省雲端成本?(二十六)

 如何節約雲端成本?

 

上雲在大部分情況下就是為了降低成本,在這方面,主流的容器服務基本上都能夠有效地降低成本——不僅能夠高效自動化的管理和控制容器,而且不需支付Kubernetes 主節點的費用。不過,我們還可以在此基礎上進一步節約成本,這裡以騰訊雲TKE為例,介紹幾個技巧:

  • 無需過度購買配置,儘量使用自動擴充套件

傳統IT往往都會過度購買配置,甚至上一年都有計劃下一年需要購買的虛擬機器和儲存資源,往往都會超買,造成了很多不必要的消費(雲資源一經購買,無論是否使用,均會按時收費)。在雲端,k8s擁有極高的擴充套件性、自動化和可伸縮性,我們完全可以對雲資源按量付費並且設定設定自動伸縮。比如雲端的k8s叢集,我們可以配置叢集節點的伸縮組,以按需使用雲端資源:

 

 

  • 最大化的利用伺服器資源

當我們建立好k8s集群后,我們就可以建立容器服務了。但是,容器服務的建立是有限制的,例如下面這個叢集:

 

如果我們在建立服務時,設定了各個服務的CPU限制和記憶體限制,哪怕當前容器實際的資源消耗低的可憐,我們也有可能無法繼續建立容器服務,因為只有噹噹前節點上可分配資源量大於等於容器限制資源最小值時才允許將容器排程到該節點。這時,如果我們對程式有信心,或者希望更大限度的利用雲端資源,可以將CPU限制和記憶體限制留空,也就是不做任何限制,以便更大程度的利用好雲資源。不過此項設定有風險,比如有的服務特別吃資源或者程式碼編寫不當,那麼勢必會影響其他的容器服務的穩定,因此僅推薦開發測試環境使用。

  • 用好Ingress

 

Ingress是k8s叢集的流量入口,即外部流量進入k8s叢集的必經之路,其公開了從叢集外部到叢集內服務的HTTP和HTTPS路由。

騰訊雲的Ingress提供以下型別的服務:

1)       公網訪問

2)       僅在叢集內訪問

3)       VPC內網訪問

其中,僅當提供公網訪問時,Ingress才按時收費。因此,我們可以將一些無需公網的容器服務的Ingress配置為內網訪問。

當我們的容器服務需要提供公網訪問時,一個Ingress我們可以設定多個轉發配置,從而達到節省成本的目的:

 

  • 省儲存

容器服務的資料卷支援本地硬碟(主機目錄)、雲硬碟、NFS盤和配置項。通常情況下,我們會使用雲硬碟,但是一個雲硬碟僅能掛載到一個容器服務例項,既不利於儲存資料的共享,而且也不利於儲存資源的最大化利用。

在對IO效能要求不高的情況下,我們推薦使用NFS盤。NFS資料卷適用於多讀多寫的持久化儲存,適用於大資料分析、媒體處理、內容管理等場景,可以選擇使用騰訊雲的檔案儲存CFS,也可使用自建的檔案儲存NFS。

另外,騰訊雲的NFS盤目前有10G的免費儲存空間!

 

 

往期內容連結

Docker最全教程——從理論到實戰(一)

Docker最全教程——從理論到實戰(二)

Docker最全教程——從理論到實戰(三)

Docker最全教程——從理論到實戰(四)

Docker最全教程——從理論到實戰(五)

Docker最全教程——從理論到實戰(六)

Docker最全教程——從理論到實戰(七)

Docker最全教程——從理論到實戰(八)

Docker最全教程之使用Tencent Hub來完成CI(九)

Docker最全教程——資料庫容器化(十)

Docker最全教程——資料庫容器化之持久儲存資料(十一)

Docker最全教程——MongoDB容器化(十二)

Docker最全教程——Redis容器化以及排行榜實戰(十三)

Docker最全教程之Ubuntu下安裝Docker(十四)

Docker最全教程之樹莓派和Docker(十五)

Docker最全教程之使用TeamCity來完成內部CI、CD流程(十六)

Docker最全教程之使用Docker搭建Java開發環境(十七)

Docker最全教程之Go實戰,牆裂推薦(十八)

Docker最全教程之使用.NET Core推送釘釘訊息(十九)

Docker最全教程之使用 Visual Studio Code玩轉Docker(二十)

Docker最全教程之Python爬網實戰(二十一)

Docker最全教程之使用PHP搭建個人部落格站點(二十二)

Docker最全教程之使用Node.js搭建團隊技術文件站(二十三)

Docker最全教程之MySQL容器化 (二十四)

Docker+ Kubernetes已成為雲端計算的主流(二十五)

&n