kubernetes 为什么k8s允许在PDB中设置minAvailable = 0?

sgtfey8w  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(1)|浏览(344)

当我尝试清空eks k8s节点时,我收到PDB minAvailable值设置为1的错误,因此解决方法是增加副本,或者在一些罕见的情况下(我有一个应用程序,我不能有两个管理单元的副本),我们必须将PDB minAvailable值设置为0。
问题是为什么甚至minAvailable值0也允许在PDB中设置?为什么k8s允许将我们的minAvailable值设置为0,而不是给出警告或错误?在PBD中设置minAvailable值0是否有意义?在这种情况下,我们是否应该根本不使用PDB?

wqsoz72f

wqsoz72f1#

可能有多个原因,但我把一个场景,进入我的脑海后,阅读的问题。
假设您正在运行RC部署,并且PDB设置为minAvailable。在许多情况下,需要将部署副本缩小到0
现在,如果PDB设置为1,即使手动尝试缩小到零也不起作用。在这种情况下,您必须删除PDB配置并缩小应用程序。
需要时,您必须使用YAML创建一个新的PDB并应用配置。
我们正在运行一些工作负载,这些工作负载将配置缩减到,并在K8上使用Knative获得了纵向扩展的无服务器功能。
您可以在此处检查K8s PDB控制器代码:https://github.com/mortent/kubernetes/blob/master/pkg/controller/disruption/disruption.go#L644

相关问题