节点池场景扩展
前言
前面我们介绍了如何通过ACK 节点池管理云上节点资源,以及通过节点池解决的问题。 本文我们介绍通过节点池能够实现的各种场景。
目录
节点池系列将分为几部分介绍ACK Kubernetes 节点池功能和特性
- 通过ACK 节点池高效管理Kubernetes节点——节点池介绍
- 通过ACK 节点池高效管理Kubernetes节点——线上,边缘,弹性多种场景
- 通过ACK 节点池高效管理Kubernetes节点——降低成本:自动伸缩与抢占实例
- 通过ACK 节点池高效管理Kubernetes节点——托管节点池:无人工介入的节点自愈恢复
- 通过ACK 节点池高效管理Kubernetes节点——托管节点池:设置维护窗口与自动升级
弹性节点池
弹性伸缩能力是云上降低成本的利器,通过节点池我们能够提前规划好集群的节点配置,基于节点池进行节点的动态扩缩容。 ACK 提供了弹性节点池,将Kubernetes的组件Cluster-AutoScaler和节点池结合,Cluster-AutoScaler监控集群的Pod数和节点数,根据集群中pod使用情况动态伸缩节点池的数量。 当创建一个弹性节点池的时候,时会将对应的伸缩组 ClusterAutoScaler,当集群资源不足, 创建的Pod由于无法调度而出于Pending状态时,ClusterAutoScaler 会触发
托管节点池
Kubernetes 是一个分布式操作系统,分布式系统最大的挑战在于面对失败和不确定性。 随着在kubernetes上运行的工作负载种类越多,不可避免会出现节点层面的异常,例如底层异常,磁盘过满,网络异常导致的节点失联等。 面对这些异常情况我们当然可以手动登陆到节点上执行恢复,但是当维护一个成百上千节点规模的集群时,一台台维护操作肯定不现实,而且每种异常情况对应的恢复操作也不相同,需要有着丰富经验的运维人员24小时待命,这样会带来巨大的运维成本。 同样在运维中,随着Kubernetes和操作系统的演进,集群的节点也需要不定期更新,例如使用最新的内核特性,或者安全布丁,需要更新操作系统版本,或者更新集群的容器运行时等,如何在大规模集群中快速更新同时保障系统的稳定性,也是让运维人员头疼的问题。 托管节点池就是为了解决大规模下的运维问题而设计。 托管节点池的设计思路如下:
- 支持节点升级,包含操作系统和运行时版本。 相比其他厂商销毁并新建节点的升级方式,ACK 托管节点池通过重置系统盘执行升级,可以节省新建节点的账目成本,同时也能支持预付费场景。
- 支持配置自动升级。 节点升级会影响集群的算力,很多运维操作会选择在业务低峰的时间段。 托管节点池支持在预设的维护窗口内自动升级,帮助辛苦的运维人员在夜晚能睡一个安稳觉
- 精细的升级控制,支持MaxUnavailable 和 MaxSurge 等参数,当升级结果不符合预期,通过MaxUnavailable 可以及时终止升级止血,避免扩大影响范围 ; MaxSurge 可以设置升级前额外扩容节点,保障升级过程中算力总量,防止因为节点升级中因为资源不足导致业务无法顺利驱逐。
边缘集群
边缘云计算是基于云计算技术的核心和边缘计算的能力,构筑在边缘基础设施之上的新型计算平台,并正在成为行业的新焦点。阿里云边缘托管Kubernetes集群在云端提供一个标准、安全、高可用的Kubernetes集群,整合阿里云虚拟化、存储、网络和安全等能力,并简化集群运维工作。 https://help.aliyun.com/document_detail/163259.html
ACK边缘集群中,包含两类节点池。 首先是云上节点池,云上节点池部署运行集群管控必须的addon,例如日志,监控,边缘控制器,此外在云ECS上部署 edge-tunnel-server
组件做隧道打通,并通过公网SLB挂载,为边缘节点池创建安全加密的公网运维通道。 边缘节点池每个对应一个EdgeUnit,节点的底层包含ENS和自有边缘节点两种类型。在边缘节点上会部署Edge Agent等组件, 帮助节点扩展边缘节点自治的能力。 参考:https://help.aliyun.com/document_detail/163259.html
混合云节点池
业务上云已是大势所趋,但是对于企业客户而言,出于数据主权和安全隐私的考虑,企业客户会考虑使用多云混合云方式开展业务,然而不同云环境的基础设施能力、安全架构的差异会造成企业IT架构和运维体系的割裂,加大多云混合云实施的复杂性,提高了运维成本。 阿里云容器服务ACK提供的多云混合云方案具有统一的集群管理,动态弹性和服务治理能力。 用户可以将一个线下的Kubernetes集群添加纳管到线上,在纳管的集群中创建云上节点池。 通过节点池能扩缩容云上的ECS节点,并添加到纳管集群中,提供工作负载支持。当出现突发的算力需求,线下来不及扩容,线上弹性节点池就能发挥作用,线上节点池能够通过云上的极速弹性能力提供相应计算资源,及时满足算力需求。
总结
通过节点池能够对ACK 集群提供更细粒度的节点抽象能力,通过支持不同类型的节点池,能够满足线上,边缘等各种场景,在云上也能够通过节点池提供弹性,托管等能力,为用户管理ACK节点提供更低的成本和更好的便捷性。