Kubernetes:用虚拟集群节省成本

Kubernetes:用虚拟集群节省成本

译文
作者:布加迪 2021-09-29 08:00:00

云计算

虚拟化 运行过有多个集群的Kubernetes的人都知道成本会迅速变高。无论您如何创建集群,添加的每个集群都会增加更多成本。

[[426435]]

【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】

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/238764.html<

(0)
运维的头像运维
上一篇2025-04-23 02:28
下一篇 2025-04-23 02:30

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注