如何节约云端成本?
上云在大部分情况下就是为了降低成本,在这方面,主流的容器服务基本上都能够有效地降低成本——不仅能够高效自动化的管理和控制容器,而且不需支付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的免费存储空间!