kubernetes-sigs/cluster-api

MachinePool.Spec.ProviderIDList may not scale well

Open

#6,387 opened on Apr 6, 2022

View on GitHub
 (13 comments) (0 reactions) (0 assignees)Go (1,532 forks)auto 404
area/machinepoolhelp wantedkind/bugpriority/important-longtermtriage/accepted

Repository metrics

Stars
 (4,267 stars)
PR merge metrics
 (PR metrics pending)

Description

What steps did you take and what happened:

In working on the MachinePool Machines proposal in #6088, we collectively rejected the idea of attaching an infrastructureRefsList to each MachinePool spec.

While this would be convenient, the overall size of a MachinePool could become large if the number of replicas / instances grows. Its representation is transferred over the network and stored in etcd. It's easy to imagine a long list of structs causing performance problems with a thousand-node cluster, for example. (No, we didn't test this, we are simply anticipating a possible problem.)

Similarly, the existing ProviderIDList on a MachinePool spec could become large in a large cluster. See this comment.

We should investigate if a large ProviderIDList actually causes problems–maybe this could be tested with DockerMachinePool? It might also be possible to deprecate use of ProviderIDList after #6088 has been implemented.

What did you expect to happen:

Anything else you would like to add:

Environment:

  • Cluster-api version:
  • Minikube/KIND version:
  • Kubernetes version: (use kubectl version):
  • OS (e.g. from /etc/os-release):

/kind bug

Contributor guide