阅读时间:4分钟
扩展Kubernetes节点不是一项容易的任务。因此,我们很高兴宣布一项新的服务,它将删除所有的这种复杂性和沮丧,Elastigroup”Kubernetes自动定量”。
扩展容器Kubernetes之上的挑战
是建立在一个Kubernetes拓扑Kubernetes主负责维护所需的状态对你的集群。扩展容器时,您需要确保它有效尺度。让我们看一个例子:说你k8集群运行10的节点c3.large(2个vcpu和3.8直布罗陀海峡的内存),10的节点c4.xlarge(4个vcpu和7.5直布罗陀海峡的内存),所以你的全部个vcpu是60 * 1024=61440 CPU单元和总内存113年镶条。
然而,如果一个单身圆荚体需要16镶条内存吗?即使你有足够的内存和CPU,它仍然无法启动。为了解决这个问题,请允许我介绍的两个最重要的概念集装箱的应用程序扩展
- 俄罗斯方块扩展
- 净空高度
俄罗斯方块扩展
当一个圆荚体在Kubernetes推出,调度器试图找到自由的能力圆荚体来运行。然而,在某些情况下,没有足够的资源来满足吊舱的要求。雷竞技rabet官网当一个圆荚体是失败的开始,Kubernetes写事件描述为什么pod无法正常运行。最常见的错误事件:
没有可用的节点匹配所有的谓词::PodToleratesNodeTaints没有可用的节点匹配所有的谓词::cpu不足,PodToleratesNodeTaints。没有可用的节点匹配所有的谓词::内存不足,PodToleratesNodeTaints
Elastigroup Kubernetes的自动定量自动检测这些事件并启动相关的其他实例大小和类型。例如,如果一个圆荚体需要10镶条内存和Elastigroup配置了4个不同的实例(m3。大,c3。大,c4。大,m3.xlarge]自动定量将拿起实例最足够的RAM和CPU会见圆荚体需求,在这种情况下,m3.xlarge。
净空高度
空间是一个缓冲区的闲置产能(在内存和CPU)用于确保每当我们想规模更多的豆荚,我们不需要等待新实例,同时防止实例被过度利用。每一个空间单元包括两个定义:一个用于CPU单元”cpuPerUnit”(1024单位= 1个vCPU),一个用于记忆”memoryPerUnit”(MiB)。此外,您还可以定义空间单元的数量你想要储备集群中。例如,假设我们定义空间单位由512 MiB的内存和1024 CPU单元,并要求共有10个单位。最重要的是,我们假设集群包含3个实例。自动定量将验证单位在整个集群的总额并检查它是否满足所需的数量配置组。例如,如果第一个实例2整个自由空间单元(在我们的示例中,这意味着至少有2048 MiB和2048 CPU单元),第二个实例3整个单位和第三5单位,然后集群共有10个免费空间单元。在这种情况下,没有扩大会被执行。但是,如果第一个实例将免费2单位,第二个实例将有3个免费单位但第三只会4免费单位,那么集群将总共9免费单位。在这种情况下,集团需要10个免费单位这将触发一个扩大的活动。
开始
- 去
Elastigroup - >编辑- >计算- >扩展“集成”部分的计算选项卡并使Kubernetes集成 - 插入
IP / FQDN你的Kubernetes主和令牌有关更多信息,请参见:创建Kubernetes无记名令牌 - 插入扩展属性
冷却时间后的时间(以秒为单位)扩展活动之前完成另一个活动可以开始评估阶段——连续时间的数量应该通过缩放下来之前净空高度-空间的数量单位保持随时可用Kubernetes集群CPU净空高度- CPU的数量单位预留给每一个空间单元内存空间- (MB)的内存数量单位预留给每一个空间单元

API & CloudFormation配置
“集团”{…“thirdPartiesIntegration”: {“kubernetes”: {“apiServer”:“https://example.host.com”,“令牌”:“这样”,“自动定量”:{“isEnabled”:真的,“冷却”:180年,“下来”:{“evaluationPeriods”: 5},“净空”:{“cpuPerUnit”: 1024年,“memoryPerUnit”: 256年,“numOfUnits”: 10}}}}…}
按比例减少
Autosscaler监控集群和发现空闲实例。一个实例被认为是闲置如果不到40%CPU和内存的利用率。找到空闲实例时连续指定数量的时期,Elastigroup将首先找到足够的闲置产能在集群中的其他实例。它会流失实例豆荚,安排其他实例,并终止空闲实例。

