兰州网站制作公司怎么样,西安网站建设市场,郑州seo网站排名,湖南株洲发布最新消息前言
近期#xff0c;阿里云容器服务kubernetes发布了cluster-autoscaler的支持#xff0c;开发者可以通过页面简单快捷的配置节点的弹性伸缩#xff0c;支持普通实例、GPU实例以及竞价实例帮助开发者实现架构弹性和运营成本之间的博弈。阿里云容器服务kubernetes的cluster…前言
近期阿里云容器服务kubernetes发布了cluster-autoscaler的支持开发者可以通过页面简单快捷的配置节点的弹性伸缩支持普通实例、GPU实例以及竞价实例帮助开发者实现架构弹性和运营成本之间的博弈。阿里云容器服务kubernetes的cluster-autoscaler的能力还有很多会陆续通过控制台开放出来对于cluster-autoscaler高级功能有强需求的开发者也提供手动配置的方式进行实现那么接下来我们一起来看一下cluster-autoscaler支持的高级功能。
高级功能解析
在解析高级特性之前我们首先要了解的是弹性伸缩的主要原理在阿里云容器服务kubernetes中通过页面配置的伸缩规则会转换为ESS弹性伸缩服务中的伸缩组主动下发组件cluster-autoscaler并将组ID作为参数传递给cluster-autoscaler然后cluster-autoscaler会根据相应的配置实现伸缩组的选择以及具体弹出的实例规格。下发的cluster-autoscaler在命名空间kube-system下面模板内容如下 可以看到在cluster-autoscaler的启动参数中包含了--node的参数里面配置了伸缩组的IDcluster-autoscaler就是通过这个组ID来识别伸缩组信息并实现伸缩的。在了解了这些原理后我们来看下怎么使用阿里云容器服务kubernetes提供的高级特性。阿里云容器服务kubernetes的cluster-autoscaler支持如下高级特性
功能特性是否支持单可用区、多可用区支持支持普通实例CPU、异构计算实例GPU)、竞价实例、神龙服务器支持多实例规格弹性伸缩配置支持定时伸缩、报警伸缩支持指定伸缩组调度支持自定义安装脚本支持支持
接下来我们针对上述的高级特性进行一一解析
单可用区、多可用区支持
阿里云容器服务kubernetes集群支持单可用区与多可用区两种形式多可用区的kubernetes集群可以具备更好的集群鲁棒性不会因为单一可用区机房的宕机造成整个集群的不可用。那么多可用区的cluster-autoscaler有什么好处呢多可用区的cluster-autoscaler可以提高实例弹性伸缩的成功率。因为云资源是动态调整的每个地域每个可用区的库存都会根据不同的时间不同的资源状态进行调整同样规格的实例可能在可用区A中可以生产但是在可用区B中无法生产。如果配置多个可用区那么就拥有了在多个可用区中弹出实例的可能提高了弹性伸缩的成功率。
目前在控制台上只支持单可用区的伸缩组配置那么怎么创建一个具有多可用区的弹性伸缩组并使用呢从上文我们了解到cluster-autoscaler只需要识别伸缩组ID即可那么只需要创建一个新的伸缩组并配置给cluster-autoscaler即可。 伸缩组中的其他配置建议拷贝一个已有的伸缩做来设置降低配置的难度。最后将这个伸缩组的ID配置到yaml中即可 多实例规格的支持
多实例规格可以获得更好的伸缩成功率而且结合竞价实例可以获得更优的运营成本节约对于竞价实例不了解的开发者可以先参考下这篇文档。多实例规格的支持方式非常简单我们可以无需新建伸缩组只需修改已有的配置即可。通过容器服务弹性伸缩的页面点击进入ESS的伸缩组配置。 点击左侧菜单的伸缩配置以及右侧配置的修改按钮并添加希望加入的其他配置此处需要特别注意的是容器的配置一定要保证规格一致比如CPU和内存的大小必须保持一致 配置完成点击确认配置即可生效。
定时伸缩与报警伸缩
定时伸缩是一个非常常见的伸缩场景但是定时伸缩与cluster-autoscaler的伸缩策略是不完全相同的那么如何实现呢。此处我们只需要依赖ESS弹性伸缩服务即可首先参考多可用的配置先创建一个伸缩组。然后在这个伸缩组中设置弹出的伸缩规则。 在定时任务中设置任务配置选择伸缩组与伸缩规则并设置执行时间 此时就设置完成了一个定时的伸缩如果需要周期性设置那么可以勾选下放的重复周期设置。同理可以设置缩容的规则以及缩容的时间。对于报警伸缩而言和定时伸缩配置方法是一致的他们都无需依赖cluster-autoscaler来实现。
自定义安装脚本
在讲解如何定义安装脚本之前需要额外讲解下一个ECS的机器是如何加入到集群中的在伸缩配置的高级选项中有一个base64的自定义数据我们通过base64的解码工具进行解析可以看到里面内容如下
#!/bin/sh
curl http://aliacs-k8s-cn-shenzhen.oss-cn-shenzhen.aliyuncs.com/public/pkg/run/attach/1.10.4/attach_node.sh | bash -s -- --openapi-token [secret_token] --ess true --labels workload_typespot
上述的脚本的作用就是将一个ECS的节点加入到集群中的我们自定义的安装脚本可以添加到上述脚本后面然后通过base64工具进行加密并贴回原来的自定义数据框内即可。
最后
在本文中给大家讲解了如何使用cluster-autoscaler的高级特性来支持不同维度和场景的弹性伸缩cluster-autoscaler也会在近期开源并提交给社区
原文链接 本文为云栖社区原创内容未经允许不得转载。