Plan GCP subnets and GKE secondary ranges, allowing for the four reserved addresses and the per-node pod CIDR.
GCP reserves four addresses per subnet rather than two, and GKE consumes addresses from two secondary ranges on top of the primary one. The per-node pod block is rounded up to a power of two of roughly double the pod limit, so 110 pods per node burns a full /24 — which is why a /14 pod range is the standard recommendation. Primary subnet ranges can be expanded but never shrunk, and a GKE secondary pod range cannot be changed after cluster creation, so an undersized range means rebuilding the cluster rather than editing a setting. Getting the arithmetic right once is far cheaper than renumbering later.
GCP VPC Network
usable = 2^(32 − prefix) − 4 reserved; each GKE node consumes 2^ceil(log2(pods per node × 2)) addresses from the secondary pod range, so nodes supported = pod range size ÷ that block.
usable = 2^(32 − prefix) − 4 reserved; each GKE node consumes 2^ceil(log2(pods per node × 2)) addresses from the secondary pod range, so nodes supported = pod range size ÷ that block. GCP reserves four addresses per subnet rather than two, and GKE consumes addresses from two secondary ranges on top of the primary one. The per-node pod block is rounded up to a power of two of roughly double the pod limit, so 110 pods per node burns a full /24 — which is why a /14 pod range is the standard recommendation.
Primary subnet ranges can be expanded but never shrunk, and a GKE secondary pod range cannot be changed after cluster creation, so an undersized range means rebuilding the cluster rather than editing a setting. Getting the arithmetic right once is far cheaper than renumbering later.
This calculator takes 8 inputs: Primary subnet prefix, Secondary pod range prefix, Secondary service range prefix, Maximum pods per node, Nodes planned in this subnet, Other VMs and endpoints in the subnet, Internal load balancer addresses, Planned growth multiple. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
GKE allocates a power-of-two CIDR per node and adds headroom so addresses are not reused immediately as pods churn. At the default limit of 110 that rounds up to 256 addresses — a /24 per node — which is the figure to multiply when sizing the pod range.