记一次公司k8s集群故障

819 阅读1分钟

原因

昨天公司k8s集群故障,大量pod驱逐,原因是因为keepalived脑裂

集群的node是通过vip访问apiserver的

那么当keepalived出现脑裂时,kubelet就会访问不到apiserver,导致controller-manager设置node状态为not ready,接着controller-manager驱逐node上的Pod

这里驱逐分为两种情况

一种是启用了enable-taint-manager,那么pod会在300s后驱逐

一种是没启用enable-taint-manager,那么pod直接驱逐

解决办法

在所有node上配置nginx,填入所有apiserver的ip(作为负载均衡)