Skip to content

Kubernetes


Default Cluster CIDR for k3s

I was going through an engaging Kubernetes course by Mischa when I noticed something intriguing. While running the command k get pods -o wide, I observed that the pods were assigned internal IP addresses in the range 10.42.x.x. Curious, I dug deeper and discovered that the default CIDR block for k3s clusters is 10.42.0.0/16.

According to the IANA Special-Purpose Address Registry Guidelines, the 10.0.0.0/8 CIDR block is reserved for private use, along with 172.16.0.0/12 and 192.168.0.0/16. Since a k3s cluster can theoretically scale to a large number of nodes, choosing a block within 10.0.0.0/8 is a sensible decision. This range provides ample IP addresses while minimizing conflicts with public or external networks.

However, using the entire 10.0.0.0/8 would be excessive, and smaller subnets like 10.0.0.0/16 or 10.1.0.0/16 are already heavily used in cloud environments, such as AWS VPCs, Azure Virtual Networks, and GCP VPCs. To avoid potential conflicts, k3s needed a unique and less commonly used subnet—thus the choice of 10.42.0.0/16.

But why specifically 42?

I was scratching my head over this until it hit me: “The answer to the ultimate question of life, the universe, and everything is Forty-two.”

Suddenly, everything made perfect sense.


References: