This page describes how to resize an Google Distributed Cloud user
cluster. Resizing a user cluster means adding or removing nodes. Adding nodes
requires that IP addresses are available for the new nodes.
You resize a user cluster by changing the replicas fields in the
nodePools
section of your cluster configuration file and then running
gkectl update cluster.
For information on maximum and minimum limits for user clusters, see
Quotas and limits.
If you intend to have N nodes after the resizing, then you must have N + 1 IP
addresses available.
Verify that you have enough IP addresses. How you do the verification depends
on whether the cluster uses a DHCP server or static IP addresses.
DHCP
If the cluster uses DHCP, check that the DHCP server can provide enough IP
addresses. It must be able to provide at least one more IP address than the
number of nodes that will be in the cluster after the resizing.
Static IPs
If the cluster uses static IPs, running gkectl update cluster first verifies
whether you've allocated enough IP addresses in the cluster. If not, you can find
the number of extra IP addresses needed in the error message.
If you need to add more IP addresses to the user cluster, perform
the following steps:
Verify that all of the IP addresses you intend to use for the user cluster
are included in the IP block file. The IP block file should have at least
one more IP address than the number of nodes that will be in the cluster
after the resizing.
To view the addresses reserved for a user cluster:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eResizing a Google Distributed Cloud user cluster involves adding or removing nodes by modifying the \u003ccode\u003ereplicas\u003c/code\u003e field within the \u003ccode\u003enodePools\u003c/code\u003e section of the cluster configuration file.\u003c/p\u003e\n"],["\u003cp\u003eBefore resizing, ensure that you have at least one more available IP address than the intended number of nodes in the cluster, whether using DHCP or static IPs.\u003c/p\u003e\n"],["\u003cp\u003eTo resize the cluster, update the \u003ccode\u003ereplicas\u003c/code\u003e field in the user cluster configuration file, then run the \u003ccode\u003egkectl update cluster\u003c/code\u003e command.\u003c/p\u003e\n"],["\u003cp\u003eIf using static IPs and additional addresses are needed, update the user cluster's IP block file and then run \u003ccode\u003egkectl update cluster\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eAfter resizing, you can verify the changes by running \u003ccode\u003ekubectl get nodes\u003c/code\u003e and \u003ccode\u003ekubectl describe machinedeployments\u003c/code\u003e commands to check node status and the \u003ccode\u003eReplicas\u003c/code\u003e count.\u003c/p\u003e\n"]]],[],null,["# Resizing a user cluster\n\n\u003cbr /\u003e\n\nThis page describes how to resize an Google Distributed Cloud user\ncluster. Resizing a user cluster means adding or removing nodes. Adding nodes\nrequires that IP addresses are available for the new nodes.\n\nYou resize a user cluster by changing the `replicas` fields in the\n[nodePools](/anthos/clusters/docs/on-prem/1.9/how-to/user-cluster-configuration-file#nodepools-section)\nsection of your cluster configuration file and then running\n`gkectl update cluster`.\n\nFor information on maximum and minimum limits for user clusters, see\n[Quotas and limits](/anthos/clusters/docs/on-prem/1.9/quotas).\n\nFor information on managing node pools with `gkectl update cluster`, see\n[creating and managing node pools](/anthos/clusters/docs/on-prem/1.9/how-to/managing-node-pools).\n\nVerify that enough IP addresses are available\n---------------------------------------------\n\nIf you intend to have N nodes after the resizing, then you must have N + 1 IP\naddresses available.\n\nVerify that you have enough IP addresses. How you do the verification depends\non whether the cluster uses a DHCP server or static IP addresses. \n\n### DHCP\n\nIf the cluster uses DHCP, check that the DHCP server can provide enough IP\naddresses. It must be able to provide at least one more IP address than the\nnumber of nodes that will be in the cluster after the resizing.\n\n### Static IPs\n\nIf the cluster uses static IPs, running `gkectl update cluster` first verifies\nwhether you've allocated enough IP addresses in the cluster. If not, you can find\nthe number of extra IP addresses needed in the error message.\n\nIf you need to add more IP addresses to the user cluster, perform\nthe following steps:\n\n1. Open the user cluster's [IP block file](/anthos/clusters/docs/on-prem/1.9/how-to/ip-block-file)\n for editing.\n\n2. Verify that all of the IP addresses you intend to use for the user cluster\n are included in the IP block file. The IP block file should have at least\n one more IP address than the number of nodes that will be in the cluster\n after the resizing.\n\n3. To view the addresses reserved for a user cluster:\n\n ```bash\n kubectl get cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \\\n --namespace USER_CLUSTER_NAME USER_CLUSTER_NAME --output yaml\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eADMIN_CLUSTER_KUBECONFIG\u003c/var\u003e: the path of the admin cluster kubeconfig file\n - \u003cvar translate=\"no\"\u003eUSER_CLUSTER_NAME\u003c/var\u003e: the name of the user cluster\n4. Add as many additional static IP addresses to the corresponding block as required, and then\n run `gkectl update cluster`.\n\nHere is an example of an IP block file that has four IP addresses and the\ncorresponding hostnames:\n\n```\nhostconfig:\ndns: 172.16.255.1\ntod: 216.239.35.0\nblocks:\n- netmask: 255.255.248.0\n gateway: 21.0.135.254\n ips:\n - ip: 21.0.133.41\n hostname: user-node-1\n - ip: 21.0.133.50\n hostname: user-node-2\n - ip: 21.0.133.56\n hostname: user-node-3\n - ip: 21.0.133.47\n hostname: user-node-4\n```\n\nResize the cluster\n------------------\n\nIn the\n[user cluster configuration file](/anthos/clusters/docs/on-prem/1.9/how-to/user-cluster-configuration-file#nodepool-replicas-field),\nupdate the value of the `replicas` field in one or more of the `nodePools`\nelements.\n\nResize the cluster:\n\n```\ngkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eADMIN_CLUSTER_KUBECONFIG\u003c/var\u003e: the path of the admin cluster kubeconfig file\n\n- \u003cvar translate=\"no\"\u003eUSER_CLUSTER_CONFIG\u003c/var\u003e: the path of the user cluster configuration file\n\nVerify that the resizing succeeded:\n\n```bash\nkubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes\n\nkubectl --kubeconfig USER_CLUSTER_KUBECONFIG describe machinedeployments NODE_POOL_NAME | grep Replicas\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eUSER_CLUSTER_KUBECONFIG\u003c/var\u003e: the path of the user cluster\n kubeconfig file\n\n- \u003cvar translate=\"no\"\u003eNODE_POOL_NAME\u003c/var\u003e: the name of the node pool that you\n resized.\n\nTroubleshooting\n---------------\n\nSee\n[Troubleshooting cluster creation and upgrade](/anthos/clusters/docs/on-prem/1.9/troubleshoot-cluster-creation-upgrade)."]]