Kubernetes自动定量:3方法和如何使他们好了

自动定量在Kubernetes是什么?

Kubernetes可以自动化许多管理任务,包括供应和可伸缩性。代替手动分配资源,您可以创建自动化的过程,节省时间,让你快速响雷竞技rabet官网应的峰值需求,节约成本,不需要资源时按比例缩小。它可以用来与集群自动定量只分配所需的资源。雷竞技rabet官网

的Kubernetes自动定量机制使用两层:

  • 基于吊舱扩展支持的水平吊舱自动定量(HPA)和新的垂直吊舱自动定量(VPA)。
  • 基于节点扩展支持集群自动定量。

这是我们有关的一系列文章的一部分Kubernetes

在本文中,您将学习:

1。水平吊舱自动定量(HPA)

当应用程序使用的水平变化,您需要一种方法来添加或删除pod副本。一旦配置完成,水平舱自动定量管理工作负载自动缩放。

HPA可以是有用的为无状态应用程序和有状态的工作负载。HPA由Kubernetes控制器管理经理,作为控制回路运行。控制器管理器提供了一个标志,指定HPA循环的持续时间,默认是15秒。标志是:——horizontal-pod-autoscaler-sync-period

每个循环周期后,控制器经理比较实际资源利用率为每个HPA定义的指标。它从自定义度量API或获得这些,如果您指定每荚自动伸缩功能应该基于资源(如CPU利用率),从资源指标API。雷竞技rabet官网

HPA利用指标来确定自动伸缩功能,如下:

  • 对于资源指标,你可以设置一个目标利用率值或一个固定的目标。
  • 自定义指标仅支持原始值,你不能定义一个目标利用率。
  • 对象指标和外部指标,比例是基于单个指标得到的对象,这是相对于生产利用率的目标价值。

限制

避免使用HPA与垂直吊舱自动定量(VPA)内存或CPU在评估CPU或内存指标。此外,当使用一个部署时,您不能配置HPA ReplicaSet或复制控制器,只在部署本身。

最佳实践

这里有两个关键的最佳实践有效地使用HPA:

  • 确保所有的豆荚配置资源请求当扩展决策,HPA使用CPU利用率的值观察豆荚Kubernetes控制器的一部分工作。这是资源请求的比例由计算个人的豆荚。确保数据是准确的,您应该使用所有的资源请求值容器。
  • 选择自定义指标而不是外部指标如果可能的话——外部度量API是一个安全风险,因为它可以提供大量的指标。自定义度量API提供更小的风险如果妥协,因为它只会握着你的具体指标。
  • 一起使用HPA集群自动定量——允许您协调可伸缩性的豆荚集群中的节点的行为。例如,当你需要扩大规模,集群自动定量可以添加合适的节点,按比例缩小的时候,它可以关闭不需要的节点,以节约资源。雷竞技rabet官网

2。垂直吊舱自动定量(VPA)

垂直吊舱自动定量使用实时数据限制容器资源。雷竞技rabet官网

大多数容器更紧密地坚持他们最初的请求而不是上限请求。因此,Kubernetes默认调度器节点过量使用的内存和CPU保留。为了解决这一问题,VPA增加和减少请求由豆荚容器确保实际使用符合可用的内存和CPU资源。雷竞技rabet官网

一些工作负载需要短时间内的高利用率。增加请求限制默认需要浪费闲置的资源,并将限制节点可以运行的工作负载。雷竞技rabet官网HPA可能帮助这个在某些情况下,但在其他情况下,应用程序可能不容易支持负载分布到多个实例。

VPA部署计算目标价值观通过监测资源利用率,利用其推荐组件。其更新组件就清除豆荚,必须更新新资源限制。最后,VPA承认控制器覆盖pod资源请求时创建,使用变异webhook的承认。

限制

在VPA更新运行豆荚仍然处于试验阶段,表现在大型集群仍有待考察。VPA对大多数内存不足的事件,但并不是所有的,多个VPA资源相匹配的行为相同的圆荚体仍然是未定义的。雷竞技rabet官网最后,VPA再现豆荚更新pod资源时,可能在不同的节点。雷竞技rabet官网因此,所有正在运行的容器重启。

最佳实践

这里有两个最佳实践高效利用垂直吊舱自动定量:

  • 避免使用HPA VPA串联hpa和VPA是不相容的。不一起同时使用同一套豆荚,除非你配置HPA使用自定义或外部指标。
  • 一起使用VPA集群自动定量vpa可能偶尔推荐资源请求值超过可用资源。雷竞技rabet官网这会导致资源压力和导致豆荚进入挂起状态。集群自动定量可以减轻这种行为通过旋转的新节点,以应对等待豆荚。

3所示。集群自动定量

集群的集群节点的数量,自动定量变化而HPA尺度运行集群豆荚的数量。集群自动定量寻求unschedulable豆荚和试图巩固豆荚,目前只有少数节点上部署。它通过这两个任务不断循环。

Unschedulable豆荚是内存或CPU资源不足的结果,或无法匹配现有节点由于pod的污点的纵容(规则阻止一个豆荚安雷竞技rabet官网排在一个特定的节点),关联规则(规则鼓励pod安排在一个特定的节点),或nodeSelector标签。如果一个集群包含unschedulable豆荚,自动定量检查托管节点池是否添加一个节点可能会打破豆荚。如果是这样,可以扩大和节点池,它将一个节点添加到池。

自动定量也扫描一个池的管理节点可能延期的豆荚在其他可用的集群节点。如果找到的话,它就清除这些和删除节点。当移动吊舱,自动定量需要优先级和仓PodDisruptionBudgets要考虑进去。

按比例缩小的时候,集群自动定量允许10分钟迫使一个节点终止前优雅的终止时间。这允许延期的时间节点的吊舱到另一个节点。

限制

集群自动定量只支持某些管理Kubernetes platforms-if平台不支持,考虑安装它自己。当地PersistentVolumes集群自动定量不支持。你不能扩大规模0节点组豆荚要求使用本地ssd时临时性存储。

最佳实践

这里有两个集群自动定量的有效利用的最佳实践:

  • 确保资源可用性的集群自动定量吊舱你可以通过定义一个CPU的最小资源请求的集群自动定量仓。是至关重要的,以确保运行集群的节点自动定量仓有足够的资源。雷竞技rabet官网否则,集群自动定量可能成为未响应。
  • 确保所有舱有一个定义的资源请求——功能正确,集群自动定量需要一个指定的资源请求。这是因为集群自动定量决策基于吊舱和利用单个节点的状态,并且可以扔下如果计算。

其他Kubernetes扩展机制

还有其他的方法可以用在Kubernetes规模的工作负载。这里有两种方法:

NetApp Kubernetes自动化基础设施与现货

用户不想冒这个DIY方法扩展集群的基础设施,现货NetApp serverless容器的引擎,海洋,为你做所有的工作。现货海洋提供了自动定量,读取需求实时的悬而未决的豆荚。这pod-driven自动定量有三个目标:

  • 不断检查unschedulable豆荚和找到最优节点运行
  • 确保频繁扩展豆荚不必等待启动新实例
  • 确保没有充分利用集群中的节点

与集群自动定量,用户需要有一个好的理解的容器需要。海洋,然而,在Kubernetes API服务器监控事件和动态分配基础设施基于容器的需求(CPU、内存、网络),而尊重特定的标签,会损害和纵容。一个开箱即用的解决方案,发现海洋用户不需要配置或维护个人比例组,也不会限制使用混合实例类型或多个AZ的比例。

了解更多关于Kubernetes自动定量

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

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

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

Kubernetes部署:基础和4有用的部署策略

Kubernetes提供功能,帮助您高效地安排集装箱的应用程序。这主要是通过配置的自动化过程。Kubernetes部署使您能够自动化豆荚的行为。而不是手动维护应用程序生命周期,你可以使用部署来定义如何自动行为。学习Kubernetes部署工作,考虑使用它,和四个有用的策略,包括蓝绿色和金丝雀部署。

阅读更多:Kubernetes部署:基础和4有用的部署策略

Kubernetes StatefulSets:扩展和管理持续应用程序

一个Kubernetes StatefulSet是一个工作负载API资源对象。有几个内置Kubernetes工作负载的资源,每一个为特定目的而设计的。雷竞技rabet官网StatefulSets旨在帮助您有效地管理有状态的应用程序。学习Kubernetes StatefulSets可以帮助你定义、规模和管理Kubernetes上持续的应用程序。

阅读更多:Kubernetes StatefulSets:扩展和管理持续应用程序

Kubernetes ReplicaSet: Kubernetes可伸缩性解释道

ReplicaSet (RS)是一个Kubernetes对象,确保总有一个稳定的豆荚运行一个特定的工作负载。ReplicaSet配置定义了所需的相同的豆荚,如果一个豆荚驱逐或失败,创造了更多的吊舱,以弥补损失。学习Kubernetes ReplicaSets工作,发现3种Kubernetes复制,并看到一个快速ReplicaSet教程创建一个部署。

阅读更多:Kubernetes ReplicaSet: Kubernetes可伸缩性解释道

Kubernetes Daemonset:实用指南

DaemonSet是一个Kubernetes特性,它允许您运行一个Kubernetes pod在满足特定条件的所有集群节点。每当一个新节点添加到集群中,添加了吊舱,当删除节点的集群,豆荚。当DaemonSet删除,Kubernetes删除所有创建的豆荚。学习DaemonSets如何工作,如何执行常见的操作,如创建和调度DaemonSet StatefulSets和DaemonSets之间的区别。

阅读更多:Kubernetes Daemonset:实用指南

6 Kubernetes部署策略:推出的优点

Kubernetes部署以声明的方式允许您创建豆荚和ReplicaSets。您可以定义一个理想的状态,和部署控制器不断监控相关资源的当前状态,并部署豆荚匹配所需的状态。雷竞技rabet官网它起着核心作用在Kubernetes自动定量。了解Kubernetes部署策略,发现先进策略增加缓慢推出,推出控制,蓝/绿、金丝雀部署。

看到我们的附加指南在关键Kubernetes主题

内容合作伙伴一起,我们已经在其他几个主题撰写了深入指导,还可以有用的kubernetes你探索世界。

在Azure Kubernetes

由NetApp

在AWS Kubernetes

由NetApp

Kubernetes故障排除

由Komodor

Baidu
map