文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Kubernetes:用虚拟集群节省成本

2024-12-02 20:15

关注

【51CTO.com快译】运行过有多个集群的Kubernetes的人都知道成本会迅速变高。无论您如何创建集群,添加的每个集群都会增加更多成本。一个明显的成本是控制平面,但总会有更多成本,比如每个集群都需要的额外API服务器,它本身不使用资源,但耗用现有资源池中的资源。或者您可能需要为每个集群使用单独的负载均衡系统,而不是在应用程序之间共享一个系统。

本文将更深入地探讨这个话题,以及如何通过使用虚拟集群来减少或消除多个集群的额外成本。

虚拟集群是什么?

简而言之,虚拟集群之于Kubernetes,如同虚拟机之于裸机主机。在一个集群中,您可以创建新的虚拟集群。与虚拟机一样,您将获得通过直接主机获得的所有功能,不过有几个限制。

深入探讨限制之前,先看看虚拟集群是什么、它们如何工作。您先要了解为什么要使用虚拟集群。虽然因组织而异,但有几个共同的原因。

使用虚拟集群的一大原因是,您已经在运行多个小型集群。许多组织在使用集群来改善开发者体验。许多公司不是将Kubernetes锁起来、成为开发者眼里的黑匣子,而是直接让开发者接触Kubernetes,这既为了提高开发者对技术的熟悉度,也为了提高开发者的速度,因为他们现在确切地知道应用程序会如何运行。

说到开发,集群就像开发者的机器一样是个人的。您永远不知道同事在做什么或在测试什么,所以要确保他们所做的一切并不影响到您。这是使用许多小集群的典例,但也是表明良好的开发者体验如何抬高成本的例子。

虚拟集群是一种在确保成本低的同时保持开发者体验佳、速度快的方法,下面有详细介绍。您已了解了为什么需要它,接下来得了解其工作原理。下面,您可以看到流行工具 vcluster如何实现虚拟集群。

图1

看看图的底部,您可以看到Host Cluster。这是在EKS、GKE、AKS 或运行Kubernetes的其他任何地方运行的集群。这是一个标准集群。除此之外,您拥有kube-system命名空间。同样,这是完全标准的,到目前为止还没有任何虚拟的东西。当您向上移动一步、看到ns-1和ns-2命名空间,虚拟部分就出现了。这些位于kube-system命名空间内。

创建虚拟集群时,您可以使用现有的命名空间或创建新的命名空间。通常创建新的命名空间。这个命名空间将含有几个pod。然后,这些pod含有一个您可以连接上去的“新”集群。随后,这个“新”集群有自己的API服务器,这意味着您可以将其作为自己的集群与之交互。

您想要使用虚拟集群时,就像运行vcluster connect命令一样简单,这会导致两个结果。它将开始端口转发到虚拟集群内API服务器的端口,并创建kubeconfig.yaml文件。您可以将其与kubectl结合使用,在现在虚拟的集群中执行命令。(您在本文后面将获得有关如何为自己设置vcluster的快速入门指南,因此现在无需操心。)

可以在此处阅读有关虚拟集群细节的更多信息。

节省成本

使用虚拟集群节省成本来自多个因素,主要来自虚拟集群提供的早已经过深思熟虑的功能,而不是来自专门致力于降低成本。

首先可节省控制平面的成本。节省多少取决于运行多少个集群。如果您在GKE上运行,每个所替换的集群每月可节省73美元。除此之外,您还可以从以前分离但现在共享的资源节省资金。现在可以共享负载均衡系统之类的东西,而不是为每个集群付费。

第二个节省成本的好处来自能够动态扩展Kubernetes集群。Kubernetes中的自动扩展绝非新功能。事实上,它是使用Kubernetes的最大卖点之一。然而,自动扩展实际使用的集群数量不是Kubernetes生来就有的。就虚拟集群而言,您可以在几秒钟内启用和停用集群,让每个开发者都可以拥有多个集群或没有集群,取决于任何时间点的需求。

通过关闭未使用的集群来节省成本可能很有效,但也很难管理。如果旨在具有动态性,难度更大,比如开发者家时关闭,第二天回到办公室时启用。这存在几个问题。首先,它可能很烦人。其次,毫无疑问开发者有时忘记关闭未使用的集群。开发者可能因软件缺陷而分心,或者回家后忘了日常工作中的这一步。

不过这倒不是说不能有效地使用该原则。借助Loft的睡眠模式,可以将集群设成一段时间不使用后自动进入睡眠状态。考虑到开发者每周平常工作40个小时,这么做最多可以节省76%的Kubernetes支出。

如果您想进一步了解虚拟集群的工作原理、它们带来什么好处,可以访问vcluster官网

创建虚拟集群

您已意识到虚拟集群很有意义。下一步如何着手?下面是快速入门指南。如果需要更详细的说明,可以查看官方文档。不过事实上,创建vclusters 就像这里详述的一样简单。

要做的第一件事是下载vcluster CLI:

  1. $ curl -s -L "https://github.com/loft-sh/vcluster/releases/latest" | \ 
  2. sed -nE 's!.*"([^"]*vcluster-linux-amd64)".*!https://github.com\1!p' | \ 
  3. xargs -n 1 curl -L -o vcluster && chmod +x vcluster && \ 
  4. sudo mv vcluster /usr/local/bin 

CLI安装完毕后,您可以使用vcluster create -n 语法来创建虚拟集群,就像这样:

  1. $ vcluster create vcluster-1 -n host-namespace-1 

您现在有了自己的虚拟集群,可以通过运行vcluster connect vcluster-1 -n host-namespace-1连接到该集群。无需做另外的任何工作即可开始使用,此时您可以处理新创建的集群了。

结语

现在您了解了虚拟集群的大致情况、如何使用vcluster来实现虚拟集群,以及虚拟集群如何帮助降低成本。通过将所有小型集群整合成一个大型“主机”集群,您可以节省每个控制平面的成本。除此之外,还可以节省更多的成本,因为现在更多的资源全面共享,而不是分散。

将上述内容与Loft的睡眠模式相结合,有望节省当前Kubernetes成本的三分之二以上。

原文Kubernetes: Saving Cost with Virtual Clusters,作者:Kasper Siig

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

来源:51CTO内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯