Large clusters
In Managed Service for Kubernetes, you can scale clusters from a few hundred to several thousand nodes to support resource-intensive applications and large numbers of services. As a cluster scales, its demand for compute resources and IP addresses grows, increasing the load on the master nodes, DNS servers, and network load balancers.
To maintain application performance under such loads, use the following Managed Service for Kubernetes features.
Multiple pod IP ranges
Every new node requires a block of IP addresses for its pods. If available blocks run out, the cluster cannot scale even if you have sufficient computing resources. Support for multiple ranges of pod IP addresses (Cluster Multi-CIDR) allows you to add ranges without downtime or recreating the cluster. The existing nodes and pods preserve their IP addresses.
For more on requirements and adding ranges, see Clusters with multiple ranges of pod IP addresses.
Network load balancer target groups
Dedicated target groups allow you to restrict health checks to the nodes that host the pods of your target application. This reduces loads induced by checks in large clusters.
Learn more about target group management in Load balancer target groups.
Cluster resource autoscaling
Autoscaling helps adapt cluster resources to changing workloads. The following autoscaling types are available in Managed Service for Kubernetes:
- Master scaling (Master Autoscaler): Adjusts the master node vCPU count and RAM size based on current cluster load.
- Node group scaling (Cluster Autoscaler): Adds or removes nodes based on cluster load.
- Horizontal pod scaling (Horizontal Pod Autoscaler): Changes the number of application pod replicas.
- Vertical pod scaling (Vertical Pod Autoscaler): Adjusts the vCPU and RAM resources allocated to individual pods.
Learn more about the operation, configuration, and limitations of these methods in Autoscaling.
DNS autoscaling
As the number of pods grows, so does the number of requests sent to the cluster DNS. The kube-dns-autoscaler application adjusts the number of CoreDNS replicas depending on the number of nodes and vCPUs. This ensures name resolution remains stable as the cluster expands.
To set up scaling, follow the steps in DNS autoscaling based on the cluster size. You can also implement local DNS caching on nodes to further reduce the load on CoreDNS.
Quota increase and resource reserve
Before creating or scaling a cluster, estimate how many nodes, node groups, vCPUs, and how much RAM and disk space you will need. Provide a reserve for load spikes and temporary nodes. For autoscaling groups, calculate your requirements based on the maximum group size: this value is used to calculate quotas regardless of the current number of nodes.
Check the Managed Service for Kubernetes quotas as well as Compute Cloud, Virtual Private Cloud, and Network Load Balancer quotas. If the quotas are not sufficient, request their increase in advance.
Get started with large clusters
Create a cluster from scratch or migrate your existing workloads to Managed Service for Kubernetes.