目前很多客户把ECS作为K8S集群的NODE节点使用,在K8S场景下如果要响应主动运维事件需要自己开发程序对接ecs openapi,或者通过ECS云助手插件ecs-tool-event把事件同步到操作系统内部,通过K8S系统社区提供的已有方案能力NPD+Draino+Autoscaler,可以把需响应的ECS节点从集群驱逐出去。NPD(node-problem-detector)可以通过日志采集/var/log/host_event.log的事件转化为k8s事件和修改node conditon,draino会把对应需响应node conditon的容器从有问题的node驱逐,Autoscaler可以把问题的节点释放并新建新的实例加入节点;通过这三个开源社区插件的组合可以实现ECS系统事件的自动规避。
- NPD文档:https://github.com/kubernetes/node-problem-detector/
- Draino文档:https://github.com/planetlabs/draino
- Autoscaler文档:https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler
详细操作请参见云原生场景自动化响应ECS系统事件。