그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그

  2 minute read  

Shoot Cluster Limits

Gardener operators can configure limits for shoot clusters in the CloudProfile.spec.limits section, where they can also be looked up by shoot owners. The limits are enforced on all shoot clusters using the respective CloudProfile. If a certain limit is not configured, no limit is enforced.

This document explains the limits that can be configured in the CloudProfile.

Maximum Node Count

The CloudProfile.spec.limits.maxNodesTotal configures the maximum supported node count of shoot clusters in a Gardener installation.

If this limit is set, Gardener ensures that

  • the total minimum node count of all worker pools (i.e., the total initial node count) does not exceed the configured limit
  • the maximum node count of an individual worker pool does not exceed the configured limit
  • cluster-autoscaler does not provision more nodes than the configured limit (--max-nodes-total flag)

The maximum node count of a shoot cluster can be lower than the configured limit, if the cluster’s networking configurations don’t allow it (see this doc page).

Gardener operators must ensure that no existing shoot cluster exceeds the limit when adding it. Because Gardener API server itself cannot verify that all shoot clusters would comply with a given limit set in an API request, it does not allow decreasing the limit, which could be disruptive for existing shoots. Increasing and removing the limits is allowed.

Note that the node count limit during runtime is applied by the cluster-autoscaler only. E.g., performing a rolling update can cause shoots to exceed maxNodesTotal by the total maxSurge of all worker pools. Also, when a shoot owner adds another worker pool to a cluster that has already reached the maximum node count via cluster autoscaling, Gardener would initially deploy the new worker pool with the minimum number of nodes. This would cause the shoot to temporarily exceed the configured limit until cluster-autoscaler scales the cluster down again. In other words, CloudProfile.spec.limits.maxNodesTotal doesn’t enforce a hard limit, but rather ensures that shoot clusters stay within a reasonable size that the Gardener operator can and wants to support. Shoot owners should keep the limit configured in the CloudProfile in mind when configuring the initial node count of new worker pools.