charts icon indicating copy to clipboard operation
charts copied to clipboard

[artifactory-ha] Pod Disruption Budget (node-pdb) should only apply if node.replicas > 1

Open TJM opened this issue 5 years ago • 3 comments

Is this a request for help?:


Is this a BUG REPORT or FEATURE REQUEST? (choose one): BUG, I guess

Version of Helm and Kubernetes:

$ helm version
version.BuildInfo{Version:"v3.2.1", GitCommit:"fe51cd1e31e6a202cba7dead9552a6d418ded79a", GitTreeState:"clean", GoVersion:"go1.13.10"}
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.1", GitCommit:"206bcadf021e76c27513500ca24182692aabd17e", GitTreeState:"clean", BuildDate:"2020-09-09T19:10:21Z", GoVersion:"go1.15.1", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.4", GitCommit:"67d2fcf276fcd9cf743ad4be9a9ef5828adc082f", GitTreeState:"clean", BuildDate:"2019-09-18T14:41:55Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}

Which chart: artifactory-ha ... but the same logic may apply elsewhere

What happened: With node.replicaCount = 1, I cannot do maintenance to K8s nodes (migrate the artifactory member node) because it would violate the PDB, which has minimum available 1. I had to scale it up to two replicas, so I could migrate it to another node.

What you expected to happen: It should only create the PDB if node.replicaCount > 1

How to reproduce it (as minimally and precisely as possible): Install artifactory-ha helm chart with node.replicaCount = 1

Anything else we need to know: I like turtles

TJM avatar Sep 18 '20 21:09 TJM

Yeah, same here. Why is there a PDB specifically for member nodes? Since member and primary are interchangeable, there should be a PDB saying at least one node of any type must be available, right?

raxod502-plaid avatar Dec 15 '20 20:12 raxod502-plaid

@raxod502-plaid Actually, the primary node is a single entity. The "member" nodes are what processes user requests. Unfortunately that means the minimum cluster size is 3 nodes, one primary, two members. While there are configurations to allow the primary to take user requests, I don't think a PDB will work across different statefulsets?

TJM avatar Dec 16 '20 18:12 TJM

Thank you for correcting my misunderstanding. I had mistakenly thought that running only the primary node would suffice to serve requests, but (as you point out) it is not. We have reconfigured our Artifactory HA to run 2 member nodes, and this solves the PDB problem for us as a side effect.

raxod502-plaid avatar Dec 16 '20 18:12 raxod502-plaid