Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Uniformly distribute nodes across zones by default #1629

Open
4 tasks
bernardhalas opened this issue Jan 6, 2025 · 0 comments
Open
4 tasks

Feature: Uniformly distribute nodes across zones by default #1629

bernardhalas opened this issue Jan 6, 2025 · 0 comments
Labels
feature New feature good first issue Good for newcomers groomed Task that everybody agrees to pass the gatekeeper

Comments

@bernardhalas
Copy link
Member

Motivation

Typically a cloud provider region consists of several zones, which represent isolated datacenters in geographical proximity, or in some cases isolated "fire-cells" in the same datacenter.

There's a general recommendation, to spread the cluster-nodes in the same region across these availability zones for resiliency reasons. Claudie doesn't respect this well enough.

As an example - creating a new nodepool currently requires a region + zone specification. Imagine a cluster with a single nodepool, that's autoscaled - all the nodes will be created in the same availability zone. And if that zone is under an outage, the whole cluster workload is having an outage as well.

If the workload was spread out, let's say across 3 zones, only 1/3 of the workload services would have an outage should a single zone die.

Description

Make the following specs optional on AWS/Azure/GCP/OCI/Hetzner: nodePools.dynamic[].providerSpec.zone.

If the providerSpec.zone is not specified, then the terraformer templates are enhanced to:

  • pull list of zones from datasources
  • assign a different zone (e.g. by using node id % zone-count approach) to each new node
  • however, providerSpec.zone is still respected, if specified

Exit criteria

  • providerSpec.zone is optional
  • the first node is not hardcoded to zone 1
  • nodes from a single nodepool are uniformly distributed across all zones in the region
  • docs are updated
@bernardhalas bernardhalas added good first issue Good for newcomers feature New feature groomed Task that everybody agrees to pass the gatekeeper labels Jan 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature good first issue Good for newcomers groomed Task that everybody agrees to pass the gatekeeper
Projects
None yet
Development

No branches or pull requests

1 participant