理解Kubernetes集群自动定量:功能,限制和选择

阅读时间:7分钟

有不同的工具和Kubernetes缩放应用程序和配置资源的机制。雷竞技rabet官网Kubernetes是土生土长的水平和垂直仓自动定量(HPA和VPA)处理比例在应用程序级别。然而当涉及到基础设施层,Kubernetes本身并不执行基础设施的扩展。相反,有多个工具和资源的处理机制扩展基础设施水平。雷竞技rabet官网

在本文中,我们将探索两个解决方案,解决基础设施扩展自动化Kuberne雷电竞官网进入tes -海洋的地方和开源集群自动定量。我们将讨论:

集群自动定量概述和注意事项

集群自动定量是一个开源项目,自动天平Kubernetes集群基于吊舱的调度状态的节点和资源利用率。如果你有几个计划外的豆荚由于资源不足,集群自动定量会自动添加更多的节点到集群使用云提供商的自动伸缩功能能力的例子,自动伸缩功能组(asg)和雷竞技rabet官网地方舰队在AWS或类似服务的微软Azure云或谷歌雷竞技地址ray

尽管这种简单的方法自动伸缩功能,为最优配置集群自动定量使用是复杂的。DIY的解决方案,用户需要有一个好的理解的豆荚和集装箱的需求,和需要注意的集群自动定量的限制(以及相关的后果):

  • 获得共同为集群自动定量看着定义资源请求和限制,不是实际的资源使用情况
  • 有限的灵活性,因为虽然可以使用混合实例类型节点组,实例需要相同的容量(CPU和内存)
  • 为客户想利用不同类型的计算,管理多个节点池是复杂的
  • 没有可依靠的随需应变的情况下,不能用于现货实例不创建性能和可用性的风险
  • 自动伸缩功能由用户独立组织需要管理

违约的解决方案与不干涉的方法

这些集群自动定量的限制意味着,这是一个很好的初始解,这并不总是最适合,特别是当用户正在寻找策略采取更不干涉的方法,基础设施和减少他们的云业务的成本。

什么是海洋和它是如何工作的呢?

进一步帮助简化和自动化基础设施扩展对于Kubernetes用户来说,现货提供海洋,飞机完全管理数据服务,它提供了一个serverless基础设施引擎运行容器。

Kubernetes集群自动定量

Pod-driven基础设施自动伸缩功能

利用pod-driven自动伸缩功能,海洋动态分配计算基础设施基于容器的需求(YML配置文件中记录),比如内存、CPU、磁盘和网络限制。设计在这样一种方式工作,豆荚和工作负载可以利用云计算基础架构的底层功能如定价模型、生命周期、性能和可用性,而不必了解他们。

海洋通过自动化和优化三个基础设施三层:

kubernetes, kubernetes集群自动定量

海洋为用户提供了许多特性,有效地提高自己的学习能力和有效地管理他们的容器集群资源,包括以下:雷竞技rabet官网

  • 与不同类型和大小的开箱即用的节点,用户不需要配置或维护个人扩展组
  • 海洋动态尺度基础设施和分配最合适的实例基于规模、形状的豆荚和任何标签,会损害或纵容
  • 事件监控Kubernetes API服务器,提供水平的可见性和灵活性,否则不能实现,确保可靠的性能和快速的可伸缩性
  • 海洋保持得分模型计算能力市场显著降低干扰和有效地利用云定价模型(现货实例,按需保留实例)成本降低了90%
  • 减少浪费,更有效地包装容器与海洋,显著改善本包装了30 - 40%

海洋和集群自动定量比较

为了帮助海洋和集群自动定量之间做出明智的决定,我们已经登记的一些建筑两者之间的差异,关注常见用例与AWS asg集群自动定量。

功能

集群与AWS自动定量自动伸缩功能组

海洋的地方

混合实例类型 有限的支持作为每个吊舱只有一个ASG将扩展请求和混合实例类型在每个ASG必须具有相同的能力(CPU和内存)。更多的信息 年代upported。海洋支持混合实例类型默认所有家庭。而不是管理多个node-pools,您将运行一个“海洋”。
可用性区域意识 一个自动定量组不能跨越多个可用性区域不考虑再平衡。另外,一个可以管理一个自动定量组/可用性区域。更多的信息 支持。k8集群可以通过一个单一的实体管理所有底层实例,多个配置,不论。
持续的体积(PVC)意识 节点组必须配置的自动定量组与一个可用性区域。更多的信息 支持。海洋实时读取悬而未决的豆荚的要求。如果可用的资源应该有一个卷,海洋将启动实例所需的阿兹。不需要额外的管理。
回退到
随需应变
CA或ASG /现货舰队没有选择撤退到一个随需应变的实例。 支持。海洋回落时随需应变的实例有一个现货短缺能力池。
缩小+
re-shuffling豆荚
根据条件(1)在豆荚CPU和内存运行在节点小于50%分配或(2)在一个节点上运行吊舱可以移动到另一个节点。临时性存储规模占下来的决定

CA不缩减使用水平舱自动定量豆荚

海洋缩小需要所有CA的考虑以及实例大小装箱效率考虑,导致~集群足迹CA相比减少30%。

海洋基地减少决策基于pod破坏预算,按比例缩小吊舱与HPA没有问题

现货中断处理程序 为了处理中断,需要安装aws / spot-interruption-handler daemon-set。 可用默认现货SaaS平台。有现货,不需要安装额外的工具在集群中。自动中断预测和管理。
快速、高性能自动伸缩功能 支持DIY过度供应提供工作负载空间。 支持。海洋自动计算集群空间参数,它允许集群为传入的豆荚总有空间,而不必等待新节点。
基础设施管理
必须独立管理自动伸缩功能组,并将它们与集群使用标签。 海洋自动秤动态基础设施。
GPU的支持
需要额外的设置和标签基于GPU的node-pools支持不同类型和大小。 开箱即用的支持。
节点模板生成
上游自动定量总是使用现有的节点作为一个节点组的模板。只有每个节点组的第一个节点被选中时,这可能是最新的。更多的信息。 使用“启动规范”海洋,海洋有一个源节点模板的真理,是可以预测的。启动规范提供大量的属性(可选)配置和可以更新。
podAntiAffinity 如果podAntiAffinity配置,集群自动定量将扩大一次只有一个节点 海洋将继续扩大并行的每个约束包括podAntiAffinity立即和交付基础设施扩展。

尝试海洋

像集群自动定量、海洋与容器的引擎你的选择。看看它是如何工作的,下面的指南将带你通过步骤建立海洋上的使用eksctl

海洋的尝试在不同的云提供商使用下面的链接

  • 谷歌云GKE——海洋
  • 雷竞技地址ray微软Azure部——海洋

先决条件

1。配置您的AWS凭证
使用awscli环境变量,运行以下命令:

出口AWS_ACCESS_KEY_ID = < aws_access_key >出口美元AWS_SECRET_ACCESS_KEY = < AWS_SECRET_ACCESS_KEY >

2。设置的位置。io账户(免费注册AWS根据)和凭证点我的政策
使用环境变量,运行以下命令:

出口SPOTINST_TOKEN = < SPOTINST_TOKEN >出口美元SPOTINST_ACCOUNT = < SPOTINST_ACCOUNT >

3所示。海洋eksctl安装集成

curl https://spotinst-public.s3.amazonaws.com/integrations/kubernetes/eksctl/eksctl.sh |上海同声传译sudo mv。美元/ bin / eksctl /usr/local/bin & & rm射频/ bin

步骤

1。创建一个yaml文件来描述所需的集群和海洋配置。例如,“myEKSwithOcean.yaml”:

apiVersion: eksctl。io / v1alpha5: ClusterConfig元数据:名称:cluster-4地区:eu-north-1 vpc: id: #“vpc-0dd338ecf29863c55”(可选,必须匹配vpc id用于下面的每个子网)cidr:“192.168.0.0/16”#(可选的,必须匹配cidr vpc)所使用的子网:#必须提供“私人”和/或“公共”子网的可用性区域如图所示私人:eu-north-1a: id:“subnet-0b2512f8c6ae9bf30”cidr:“192.168.128.0/19”#(可选的,必须匹配cidr所使用的子网)eu-north-1b: id:“subnet-08cb9a2ed60394ce3”cidr:“192.168.64.0/19”#(可选的,必须匹配cidr所使用的子网)eu-north-1c: id:“subnet-00f71956cdec8f1dc”cidr:“192.168.0.0/19”#(可选的,必须匹配cidr所使用的子网)节点组:-名称:ng-1 spotOcean:策略:#百分比的现货实例旋转所需的#能力。spotPercentage: 100 #让海洋利用任何可用的保留实例之前#采购现货实例。utilizeReservedInstances:真#启动点播实例没有现货实例。fallbackToOnDemand:真正的自动定量:#使海洋自动定量。启用:真#冷却期间缩放操作。冷却时间:300 #备用资源容量管理启用快速转让豆荚#没有等待新的资源。雷竞技rabet官网空间:#分配的cpu数量。cpu都用millicores表示,# 1000 millicores = 1个vCPU。- cpuPerUnit: 2 # gpu分配的数量。 gpuPerUnit: 0 # Amount of memory (MB) to allocate. memoryPerUnit: 64 # Number of units to retain as headroom, where each unit has the # defined CPU and memory. numOfUnits: 1 compute: instanceTypes: # Instance types allowed in the Ocean cluster. Cannot be configured # if the blacklist is configured. whitelist: # OR blacklist - t2.large

2。创建集群和海洋

美元eksctl创建集群——名字促使nodegroup-name standard-workers——spot-ocean

另外,使用yaml配置:预定义的默认值

美元- f MyEKSwithOcean.yaml eksctl创建集群

配置集群大约需要10 - 15分钟,一旦完成,您可以迁移现有工人节点和创建新的Ocean-managed节点组。

下一个步骤

与海洋,容器基础设施管理简化,你可以启动并运行Kubernetes集群在几分钟内。探索海洋文档库更多地了解你能做什么与海洋,或者今天开始免费试用。

Baidu
map