Skip to content

Deployment should support both Failure Domains and Update Domains #41394

Closed
@krmayankk

Description

Feature Request: Deployments should support the concepts of Failure Domains and Update Domains as first class citizens and it should be easy to request those features in the Deployment Spec.

Currently Kubernetes Deployments can spread pods across failure zones using the annotations failure-domain.beta.kubernetes.io/zone on a best effort basis.We can make that a hard requirements by using pod anti affinity which requires some expression. Making pods spread across failure domains on a best effort basis or as a hard requirement should be as simple as flipping a switch in Deployment. We shouldnt have to write a pod anti affinity rule to achieve this.

Deployments while they support the concept of failure domains, do not have any such understanding of update domains. What that means is that an application can define what set of pods belong to which update domains and when doing a Rolling Update, only pods belonging to a single update domain are brought down at a time. This could potentially in the simplest case using the rack as a update domain, so Deployments spreads pods across racks and while updating only brings down pods per rack at a time.

We should support both these feature in an easy to use way.
Looking to see what others think in this area.
@Kargakis @janetkuo @brendandburns @smarterclayton @thockin @nikhiljindal

Metadata

Assignees

Labels

lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.sig/appsCategorizes an issue or PR as relevant to SIG Apps.sig/schedulingCategorizes an issue or PR as relevant to SIG Scheduling.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions