如果您希望将节点进行分组纳管,同时降低节点的运维负担,例如操作系统(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。建议服务后端采用多副本部署在多个节点上,同时为重要应用配置PDB,以避免节点上Pod被驱逐后影响服务的整体可用性。自愈:
托管节点池会监控节点的运行状态,如果节点超过10分钟未上报节点状态,或者状态为NotReady,容器服务会尝试通过重启故障节点来恢复潜在的故障。因此,节点上的Pod会被重启。
托管节点池与普通节点池的区别
ACK提供普通节点池和托管节点池。在集群和节点池运行状态正常的情况下,您可以在节点池列表的操作列,单击开启托管或关闭托管,转换节点池类型。
普通节点池:为您提供管理一组同质节点的能力,同一个节点池的节点具有相同的配置,例如规格、标签(Label)、污点(Taint)。您可以自行运维普通节点池内的节点。
托管节点池:在普通节点池的基础上,提供操作系统CVE漏洞自动修复能力,自动触发故障节点修复等能力,从而实现托管节点池的自动化运维。
说明托管节点池的自动运维能力可以简化节点运维工作,但部分复杂的节点故障可能仍需人工修复。关于节点自动恢复的更多信息,请参见开启节点池节点故障自动恢复。
托管节点池与普通节点池具体的对比项及说明如下表所示。
对比项 | 普通节点池 | 托管节点池 |
运维能力 | 由您自行管理。 | 部分运维托管于容器服务。 |
故障修复 | 手动触发。 | 自动检测并触发故障修复。支持配置是否允许重启节点来修复故障。 |
操作系统(OS)CVE修复 | 由您手动触发操作系统CVE修复。 | 支持自动触发操作系统CVE漏洞修复,包括高危、中危和低危漏洞。 |
kubelet小版本升级 | 由您手动触发kubelet升级。 | 可配置自动升级kubelet小版本。 |
containerd运行时升级 | 由您手动触发运行时升级。 | 可配置自动升级containerd运行时。当containerd有重大操作系统CVE漏洞时,默认自动升级修复。 |
ECS系统事件自动响应 | 由您自行响应ECS系统事件。 | 支持ECS系统事件的自动响应。 目前支持的系统事件类型如下。
|