如果您希望将节点进行分组纳管,同时降低节点的运维负担,例如操作系统(OS)CVE漏洞自动修复、kubelet自动升级、节点故障时重启节点等,您可以启用托管节点池。托管节点池是ACK推出的自动化运维型节点池,在普通节点池的基础上支持多种自定义运维能力。
托管节点池介绍
使用场景
只关注上层应用开发,不希望花费过多精力运维Worker节点。
对底层节点的变更不敏感,业务Pod对迁移有较高的容忍度,更加关注业务的弹性而非不可变性。
架构图
注意事项
准备工作
托管节点池提供自动化运维能力,需要配置集群维护窗口才可使用。您可以单击托管节点池的操作列的托管配置,在托管配置页面配置维护窗口。
托管节点池支持操作系统(OS)CVE漏洞修复,使用该功能需要开通云安全中心的企业版或以上版本且保证配额充足。ACK不额外收取费用。具体操作,请参见购买云安全中心、功能特性。
ACK建议您务必开启事件中心,否则将无法接收托管节点池的告警事件。关于开启事件中心的具体操作,请参见事件监控。
ACK建议您务必安装ack-node-problem-detector,否则将无法检测节点的异常情况。关于ack-node-problem-detector的具体说明,请参见ack-node-problem-detector。
使用须知
节点池升级
ACK采用替换系统盘的方式执行托管节点池的节点升级时,会删除节点系统盘上的数据。数据盘内的数据不受影响,请勿在系统盘上存储任何持久化数据。
排水
托管节点池在替盘升级前会执行节点下线与排水,因此会造成Pod的重启、长连接的中断。执行排水操作时,ACK会先尝试通过
cordon
命令或者容器服务管理控制台将节点设置为不可调度,然后驱逐该节点上的Pod。如果超时30分钟后,Pod仍未被驱逐,容器服务将强制执行替盘操作。自愈:
托管节点池会监控节点的运行状态,如果节点超过10分钟未上报节点状态,或者状态为NotReady,容器服务会尝试通过重启故障节点来恢复潜在的故障。因此,节点上的Pod会被重启。
托管节点池与普通节点池的区别
ACK提供普通节点池和托管节点池。在集群和节点池运行状态正常的情况下,您可以在节点池列表的操作列,单击开启托管或关闭托管,转换节点池类型。
普通节点池:为您提供管理一组同质节点的能力,同一个节点池的节点具有相同的配置,例如规格、标签(Label)、污点(Taint)。您可以自行运维普通节点池内的节点。
托管节点池:在普通节点池的基础上,提供操作系统CVE漏洞自动修复能力,自动触发故障节点修复等能力,从而实现托管节点池的自动化运维。
说明托管节点池的自动运维能力可以简化节点运维工作,但部分复杂的节点故障可能仍需人工修复。关于节点自动恢复的更多信息,请参见托管节点池节点自动恢复。
托管节点池与普通节点池具体的对比项及说明如下表所示。
对比项 | 普通节点池 | 托管节点池 |
运维能力 | 由您自行管理。 | 部分运维托管于容器服务。 |
故障修复 | 手动触发。 | 自动检测并触发故障修复。支持配置是否允许重启节点来修复故障。 |
操作系统(OS)CVE修复 | 由您手动触发操作系统CVE修复。 | 支持自动触发操作系统CVE漏洞修复,包括高危、中危和低危漏洞。 |
kubelet小版本升级 | 由您手动触发kubelet升级。 | 可配置自动升级kubelet小版本。 |
containerd运行时升级 | 由您手动触发运行时升级。 | 可配置自动升级containerd运行时。当containerd有重大操作系统CVE漏洞时,默认自动升级修复。 |
ContainerOS ImageId 更新 | 不支持。 | 对于ContainerOS类型的镜像,自动更新节点池镜像ID到最新版本,让新扩容的节点操作系统镜像保持最新。 |