JetBrains CodeCanvas 2024.1 Help

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:

computeservice: worker: extraDindArgs: "--default-address-pool base=172.16.0.0/16,size=24"

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.

Last modified: 17 May 2024