Kubernetes Network Settings
Users who run Docker containers inside dev environments (nested containers) may face network conflicts. The issue occurs when the IP addresses assigned by Docker to its containers overlap with the network ranges used by the K8s cluster where the dev environment is running.
CodeCanvas uses the following networks to provide connection between dev environments and external resources:
To avoid potential network conflicts, ensure that the subnets (in CIDR notation) of these networks don't overlap.
Below you will find the default subnets of the networks and our recommendations on how to change a particular subnet.
Docker bridge network inside a dev environment container
The dockerd
inside the dev environment container could create bridge networks with these default settings:
base:
172.[17-19].0.0/16
, size:16
base:
172.[20-28].0.0/14
, size:16
base:
192.168.0.0/16
, size:20
Docker bridge network inside a worker container
The dockerd
inside the Worker-container could create bridge networks with these default settings:
base:
172.16.0.0/16
, size:24
You can change these defaults by editing computeservice.worker.extraDindArgs
in the CodeCanvas Helm chart's values:
Kubernetes service IP range
EKS
By default, an EKS cluster is assigned 172.20.x.y/16
or 10.100.x.y/16
subnets for the Kubernetes service. CoreDNS being one of these services, has an IP from this range. If user containers running inside a dev environment container have the 172.20.x.y/16
Docker bridge network, they can't access the DNS server.
You can configure this subnet only when creating the cluster.
VPC subnets for Kubernetes pods and nodes
You can configure this subnet only when creating the cluster.