原因
昨天公司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(作为负载均衡)