我有一个 PDB,可以防止其中一个 Pod 在集群升级期间被驱逐。由于我将 PDB 的 maxUnavailable 设置为 50%,并且 1 个 pod 已启动并正在运行。所以另一个 Pod 应该可以被驱逐。这是怎么回事?
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
labels:
group: x
name: mydeployment
name: mydeployment-pdb
namespace: test
spec:
maxUnavailable: 50%
selector:
matchLabels:
group: x
name: mydeployment
PDB说明
Name: mydeployment-pdb
Namespace: test
Max unavailable: 50%
Selector: group=x,name=mydeployment
Status:
Allowed disruptions: 1
Current: 2
Desired: 1
Total: 2
Events: <none>
豆荚:
k get pods #(two pods are on the different nodes)
mydeployment-7465989f54-bkwgt 1/1 Running 0 6m54s
mydeployment-7465989f54-v9lg8 1/1 Running 0 2d15h
错误:
Normal DeprovisioningBlocked 36s (x16 over 39m) karpenter Cannot deprovision node due to pdb test/mydeployment prevents pod evictions
这篇文章可能会有所帮助。它是关于“由于活动 PodDisruptionBudget 导致的节点耗尽故障”。 https://medium.com/@tamber/solution-avoid-kubernetes-openshift-node-drain-failure-due-to-active-poddisruptionbudget-df68efed2c4f