本文在测试k8s高可用时会关闭某个node节点,然后看某些pod节点是否主动漂移到其他node节点,测试确实可以,但是时长为5分钟,这个时间长度项目上是不能接受的,比如尝试缩短这个时长,搜到更多的配置都是pod-eviction-timeout这个参数,但是怎么测试都是无效,查阅k8s github有些描述发现pod-eviction-timeout这个参数在1.13版本后就不再支持了,测试用到的k8s版本为1.22.12,所以这个参数肯定无效了。
鉴于kubesphere官网以及kubekey上面都没有提到这个配置,最终也解决了这个问题,顾记录下来,希望帮到遇到相同问题的开发者。
笔者使用的kubekey安装的kubesphere以及k8s集群,所以直接给出k8s对应配置,如下:
kubernetes:
version: v1.22.12
clusterName: cluster.local
autoRenewCerts: true
containerManager: docker
apiserverArgs:
- default-not-ready-toleration-seconds=120
- default-unreachable-toleration-seconds=120
最后真正起作用的是default-unreachable-toleration-seconds这个配置,因为node关掉后状态变成了unreachable,