server/clientapi-deployment.yaml and server/computeapi-deployment.yaml both specify replicas: 1. Combined with no PodDisruptionBudget and no anti-affinity, this means:
- Any pod restart is downtime.
- A node drain (cluster upgrade, autoscaler scale-down) takes the API offline.
- Rolling updates of the Deployment briefly drop to zero ready pods.
Suggested:
- Bump
replicas to ≥2 for both APIs.
- Add a
PodDisruptionBudget with minAvailable: 1.
- Add
topologySpreadConstraints or pod anti-affinity to avoid co-locating replicas on a single node.
Note: the alchemiscale-clientapi Deployment includes a db-init initContainer running database init. With multiple replicas this runs concurrently in each pod on first rollout — needs verification that upstream database init is idempotent and concurrency-safe, or the initContainer should be moved to a one-shot Job that the Deployment depends on.
server/clientapi-deployment.yamlandserver/computeapi-deployment.yamlboth specifyreplicas: 1. Combined with noPodDisruptionBudgetand no anti-affinity, this means:Suggested:
replicasto ≥2 for both APIs.PodDisruptionBudgetwithminAvailable: 1.topologySpreadConstraintsor pod anti-affinity to avoid co-locating replicas on a single node.Note: the
alchemiscale-clientapiDeployment includes adb-initinitContainer runningdatabase init. With multiple replicas this runs concurrently in each pod on first rollout — needs verification that upstreamdatabase initis idempotent and concurrency-safe, or the initContainer should be moved to a one-shotJobthat the Deployment depends on.