美文网首页互联网科技Java 杂谈Spring-Boot
k8s云集群混搭模式,可能帮你节省50%以上的服务成本

k8s云集群混搭模式,可能帮你节省50%以上的服务成本

作者: 刀哥说Java | 来源:发表于2019-08-22 13:51 被阅读2次

现在大部分中小企业或团队都是使用云平台来部署自己的服务,如阿里云,亚马逊云等。一般来说,业务的负载都具备一定的规律,比如每天集中在某几个小时,或呈现时间段周期性波峰、波谷交替的现象,如下图


image

如果使用ECS来部署服务,则可能大部分时间ECS的资源没有得到充分利用,造成成本浪费,尤其对于像GPU之类成本较高的资源就更加了。这个时候,我们可以考虑使用云集群的混搭模式来节约成本。

业务场景

假设有一个这样的业务场景,包括如下特点及要求:

  1. 整个系统包括业务服务与两层视觉服务

  2. 各层服务之间调用需做负载均衡

  3. 每天的业务量主要集中在上午几个小时

  4. 平时业务量较低时仍要保证服务可用

  5. 尽可能降低成本,尤其是GPU服务器成本(GPU贵啊)

image

k8s云集群混搭模式

现在各大云平台都已经提供容器云服务,如阿里云有基于ECI(弹性容器实例)的Serverless Kubernetes集群服务,基于ECS节点不需要提供master的Kubernetes托管版集群服务,及自己提供master的Kubernetes专有版集群服务等。为了迎合类似上述业务场景的需求,也提供了Kubernetes + virtual node(虚拟节点)的混合集群服务,如下图所示

image

其中的虚拟节点基于ECI支持多种功能,如GPU容器实例、大规格容器实例等,增强了Kubernetes集群的弹性,使集群不局限于ECS节点的资源,做到弹性无限扩容。

部署方案

结合前面的业务场景,我们可以采用k8s的混合集群服务来部署我们的项目,如下图

image

实现步骤:

  1. 创建Kubernetes托管版集群

  2. 加入已有ECS节点

  3. 添加一个虚拟节点,通过添加应用 ack-virtual-node 来实现

  4. 分别创建无状态的业务Deployment、AI-1 Deployment、AI-2 Deployment(对应三层服务)

  5. 分别在业务Deployment上创建公网SLB,AI-1 Deployment、AI-2 Deployment上创建内网SLB

  6. 分别在各Deployment上根据CPU或内存使用阈值配置弹性水平伸缩HPA

  7. 根据需要可以在某个或某些Deployment上配置定时伸缩,通过添加应用 ack-kubernetes-cronhpa-controller 来实现

因为水平伸缩一般需要一定时间,延迟可能会对业务造成影响,所以在业务负载比较规律的时候,可以通过定时伸缩(就是定时扩展到多少个容器,再定时收缩到多少个容器)来改善;目前定时伸缩配置的查看与更新只能通过kubectl命令行进行。

总结

按照官方文档的计费方式,一个普通的2核8G的ECS一年大概费用是2600左右,如果通过容器服务的方式(按秒计费),假设每天起8小时,则一年大概费用1550左右,如果业务负载再集中到几个小时,费用会更低,对于比较稀缺又昂贵的GPU服务就更加了。但是如果服务全部按容器24小时租赁,其成本就又比ECS贵了(一年约4600),所以在平时业务负载较低的时候,可以将容器调度到ECS上保障服务的提供,业务负载高时,通过HPA或cronHPA的方式动态伸缩到虚拟节点上。对于业务负载具有一定规律的服务来说,采用这种混搭的部署方式将极大地降低你的云服务成本。不过目前k8s云集群服务应该推出时间不久,产品的易用性还比较低,对不具备一定容器与编排基础的人使用门槛相对较高。

相关文章

  • k8s云集群混搭模式,可能帮你节省50%以上的服务成本

    现在大部分中小企业或团队都是使用云平台来部署自己的服务,如阿里云,亚马逊云等。一般来说,业务的负载都具备一定的规律...

  • k8s专题目录

    初阶k8s集群搭建 高阶k8s HA 集群搭建(一) 高阶k8s HA 集群搭建(二) docker镜像私有仓库搭...

  • 青否云提供的后端云服务支持有什么?

    青否云提供一站式后端云服务解决方案,降低开发成本(节省75%),降低开发效率(提速50%)。 开发效率 无需开发数...

  • 阿里云Kubernetes网络问题

    之间一直使用的都是自建的K8S集群,由于升级困难,维护成本高,所有把自建的集群迁移到阿里云托管集群内集群使用的是F...

  • k8s服务的暴露方式及区别

    环境:阿里云已经建好k8s 测试集群1,测试集群2测试集群1对应的服务器:A和B测试集群2对应的服务器:C和D 1...

  • 阿里云上弹性伸缩kubernetes集群 - autoscale

    阿里云Kubernetes服务简化了K8S集群的创建、升级和手动扩缩容。然而使用Kubernetes集群经常问到的...

  • Pod内进程访问k8s服务

    Pod内进程访问k8s服务 外部服务可以通过kubeconfig访问k8s服务,那k8s集群内部服务(Pos内服务...

  • 【4/30】数据库服务器集群及相关

    今天学习了数据库服务器集群的搭建,数据库服务器集群主要有几种模式:主备模式,其一主多从模式,主主模式。通过以上几种...

  • kubecm k8s 多集群管理工具

    背景 由于公司业务快速发展,多个业务线有多套k8s集群,并在在不同的云厂商中部署,在去操作不同的集群时切换成本比较...

  • YARN概述

    YARN产生背景 运维成本 如果采用“一个框架一个集群”的模式,则可能需要多个管理员管理这些集群,进而增加运维成本...

网友评论

    本文标题:k8s云集群混搭模式,可能帮你节省50%以上的服务成本

    本文链接:https://www.haomeiwen.com/subject/hcsnsctx.html