腾讯云:像管理Pod一样管理Node | TKE节点池全面上

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:晏子怡网络

小提示:您能找到这篇{腾讯云:像管理Pod一样管理Node | TKE节点池全面上}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的腾讯云:像管理Pod一样管理Node | TKE节点池全面上内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< ">从K8s的声明式设计理念谈起

Pod模板

< ">K8s最优雅精妙的一个设计理念在于声明式API的运用,而Deployment又是其中的集大成者。

< ">如果没有Deployment,我们需要管理上万的单独Pod,为每一个Pod设置合适的资源需求,容器镜像版本,Label,Taints等属性。同时,我们还需要保证每一个业务对应的Pod数量在合适的值,来适应流量波动并达到负载均衡。而通过Deployment提供的Pod模板的能力,我们可以编排Pod:模板中的属性值代表我们的期望状态,Deployment会自动维持管理的Pod在我们的期望状态,而这正是K8s的使用者真正关心的(我们并不关注从当前状态到理想状态是如何达成的)。

Node模板

< ">Deployment提供了Pod模板的能力,那节点呢?是否我们也可以提供类似节点模板的能力让客户去管理他们成千上万的节点,无需一遍遍手动配置参数新建节点,反复封锁和驱逐来释放无用节点?基于声明式这一种云原生设计理念,TKE推出了节点池,用户可以利用节点模板功能,统一管理节点,不需要一遍遍手动填写创建节点参数,也不需要人工计算可以容纳业务流量的节点数目。后续TKE会围绕节点池规划自动升级和自动修复功能,用户只需关注节点池内节点是否在期望K8s版本以及期望状态即可。

其他生态能力

< ">为了丰富声明式的使用方式,节点池也会规划通过CRD来管理节点池,服务偏好K8s API的客户。您也可以把节点池和其他云资源统一编排,TKE与腾讯云Terraform团队合作,支持基于IaC(Infrastructure-as-code)的理念来编排节点池,该功能即将于12月底上线。

使用场景

< ">有TKE重点客户反馈:由于业务增长,客户每天都需要扩百余台机器,通过节点池只需一键调整数量即可完成扩容,体验比单节点模式好太多(需要填很多参数,并且创建后不好管理)。此外,在内测阶段,云原生团队在与客户的交流过程中,总结了这几类典型问题及解决方案:

< ">< color: rgb(0, 112, 192);">节点池架构概览< color: rgb(0, 112, 192);">

< ">如果您集群中创建了伸缩组,节点池全量之后仍然可以继续使用这些伸缩组。但请注意,节点池全量后TKE不会对旧版伸缩组进行后续功能维护及迭代,请您尽快使用TKE提供的接口(API/控制台)将伸缩组转换成节点池(节点池覆盖伸缩组的所有功能)。

< ">借助节点池的节点模板功能,您可以方便快捷地创建、管理和销毁节点。

< ">借助节点池的弹性伸缩功能,您可以实现节点的动态扩缩容。当集群中出现因资源不足而无法调度的实例(Pod)时,自动触发扩容,为您减少人力成本。当满足节点空闲等缩容条件时,自动触发缩容,为您节约资源成本。



节点池产品优势

< ">为了解决以上用户的痛点问题,节点池提供了以下的功能特性。

高可用



< ">您可以为一个节点池配置集群VPC下的多个子网,达到跨可用区容灾的效果。另外您可为节点视频广告行业发展池配置多机型,降低由资源售罄导致扩容失败的风险。

< ">多子网策略

< ">  PRIORITY(默认策略),按照子网列表的顺序作为优先级来尝试创建实例

< ">  EQUALITY(均匀打散):每次扩容活动选择当前实例数最少的子网进行扩容

< ">多机型策略支持10种机型并支持优先级,按照机型列表的顺序作为优先级来尝试创建实例

< ">多子网机型协同策略如果您为节点池同时配置了多子网和多机型,我们会先保证多机型的策略,后保证多可用区/子网的策略。例如多机型A、B,多子网1、2、3(PRIORITY策略),会按照A1、A2、A3、B1、B2、B3进行尝试区扩容。如果A1售罄,会尝试A2,而非B1。

自动化

< ">节点池自动扩缩容依赖Cluster Autoscaler实现,可与HPA无缝联动,实现从应用扩缩容到集群扩缩容的平滑过渡。

< ">节点池能够在容器不够资源分配的情况下按需扩容

< ">能够监控节点的CPU、内存,自动缩容闲置节点

< ">节点池提供两种扩缩容模式供您按需选择。除了默认的释放模式(扩容时创建节点,缩容时释放节点),节点池还支持与CVM关机不收费对接的关机模式(扩容时优先开机已关机节点,缩容时优先关机空闲节点),可以达到秒级热启动的效果,实现更高的扩缩容效率。

易审计

< ">考虑到节点池日常运维的场景,我们也在可观测性方面提供了保障。您可追踪节点池关联的扩缩容活动(活动相关的触发条件、时间、涉及实例、成功/失败原因),同时您还可以通过事件持久化能力查看Cluster Autoscaler相关的集群级别扩缩容记录。

< ">更多细节请查看查看节点池伸缩记录:https://cloud.tencent.com/document/product/457/48538

< ">通过查看伸缩记录,您可在短时间内定位并及时解决问题(例如因资源售罄导致的扩容失败,可以通过跨可用区部署/配置多机型来解决)。

省成本

< ">节点池支持多种计费模式(按量计费/包年包月/竞价实例),您可按需选择,节约成本。

< ">当业务需求增加时,无缝地增加适量CV网站信誉M实例,节省人力成本。

< ">当业务需求下降时,自动释放不需要的CVM实例,提高设备利用率,为您节省部署和实例成本。

< ">后续节点池会规划围绕竞价实例的增强功能,助力您实现降本增效。

易用性

< ">节点池提供多种扩缩容以及节点管理相关的灵活配置,您可以根据业务性质以及安全考虑自行搭配使用。

< ">支持为节点设置缩容保护您可以标记重要业务节点,标记后节点不会在缩容时被释放。

< ">快速迁移已有节点可手动加入已有节点到同规格的节点池(CPU、内存、GPU、AMD/ARM),实现节点的规范分组管理。同时,手动加入节点将继承节点池的Label和Taints,且这些节点只能被手动移出节点池,不受弹性扩缩容/调整节点池数目影响。

< ">支持灵活的扩缩容参数配置您可以配置灵活的扩缩容参数,本文将在下一节-扩缩容原理中详细展开。

集群扩缩容原理

< ">< color: rgb(0, 112, 192);">弹性扩容原理< color: rgb(0, 112, 192);">

< ">< color: rgb(0, 112, 192);">

< ">集群弹性扩容流程如下:

< ">1.CA(Cluster Autoscaler)监测到有因无法调度而Pending的pod

< ">2.CA根据每个节点池的节点模板进行调度判断,挑选合适的节点模板

< ">3.如果2中有多个模板合适,CA采用expanders从多个模板挑选最优的一个,并对对应节点池进行扩容。优选算法有如下几个:

< ">random:随机挑选一个节点池

< ">Most-pods:挑选能调度最多pod的节点池

< ">Least-waste:挑选调度后剩余资源最少的节点池

< ">其他社区expanders(最小成本策略、节点池优先级策略)

< ">4.对指定节点池扩容(根据多子网多机型策略),提供两种重试策略,提高容错性。

< ">快速重试:立即重试,在较短时间内快速重试,连续失败超过一定次数(5次)后不再重试

< ">间隔递增重试:随着连续失败次数的增加,重试间隔逐渐增大,重试间隔从秒级到1天不等,1-3次重试是立刻重试,4-6次失败间隔60s,7-10次600s,11-15次1800s,16-20次3600s,20次以上是86400s

弹性缩容原理

< ">集群弹性缩容流程如下:

< ">1.CA(Cluster Autoscaler)监测到利用率(取cpu利用率和mem利用率的最大值)低于设定的节点。(可设置Daemonset类型不计入pod占用资源)

< ">2.CA判断该节点是否符合缩容条件

< ">节点空闲时长要求(默认10分钟)

< ">集群扩容广告网络营销缓冲时间要求(默认10分钟)

< ">3.可设置不缩容条件如下

< ">含有本地存储的节点

< ">含有Kube-system namespace下

< ">非DaemonSet管理的pod的节点

< ">4.完全空闲节点可并发缩容,可设置最大并发缩容数。请注意,非完全空闲节点将逐个缩容,降低对业务的影响。

节点池注意事项

< ">节点池底层依赖腾讯云的弹性伸缩产品,我们建议通过节点池控制台/API来管理节点池,在弹性伸缩控制台操作导致的后果TKE无法保障,具体注意事项请参见如下表格:

参考资料

[1]节点池概述:https://cloud.tencent.com/document/product/457/43719

[2]创建节点池:https://cloud.tencent.com/document/product/457/43735

[3]查看节点池:https://cloud.tencent.com/document/product/457/43736

[4]调整节点池:https://cloud.tencent.com/document/product/457/43737

[5]删除节点池:https://cloud.tencent.com/document/product/457/43738

[6]扩缩容相关Q&A:https://cloud.tencent.com/document/product/457/32316

[7]Cluster Autoscaler FAQ:https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md

腾讯云:像管理Pod一样管理Node | TKE节点池全面上

上一篇:腾讯技术年度干货.zip
下一篇:推特找客户不比领英差,你懂多少?


版权声明:以上主题为“腾讯云:像管理Pod一样管理Node | TKE节点池全面上"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    腾讯云:像管理Pod一样管理Node | TKE节点池全面上
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“腾讯云:像管理Pod一样管理Node | TKE节点池全面上”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通腾讯云:像管理Pod一样管理Node | TKE节点池全面上的相关事宜。

关键词:腾讯云:像管理Pod一样管

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号