如何節約雲端成本?
上雲在大部分情況下就是為了降低成本,在這方面,主流的容器服務基本上都能夠有效地降低成本——不僅能夠高效自動化的管理和控制容器,而且不需支付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的免費存儲空間!