Open mganter opened 2 years ago
We tested it using Kubeadm on OpenStack VMs:
- Network with 2 subnets
- 10.0.0.0/8
- 2001:db8::/110 (without DHCP)
- Nodes
- 2001:db8::2:1 (master)
- 2001:db8::3:1 (worker)
- node size cidr ipv6 /112
- Pod cidr 2001:db8::2:0/111
- 2001:db8::2:0/112 (master)
- 2001:db8::3:0/112 (worker
We used calico as CNI. As Calico doens't respect the podCidrs field on nodes, we had to manage manually, that the pod cidrs were delegated to the correct nodes. So for calico we had the following setup:
2001:db8::2:1 had 2001:db8::2:1f40/122
2001:db8::3:1 had 2001:db8::3:1f40/122
For calico, remember that you need to have Calico dual stack config in place.
A next test setup forcing the IPAMBlocks to equal 2001:db8::2:0/112
and 2001:db8::3:0/112
. This resulted in routing errors!
Not going to work:
Unsolved topics:
New Insights:
The node.spec.podCidr / node.spec.podCidrs assignment from kube-controller-manager can be disable. So that kube-controller-manager does not need the information about the cluster-cidr. Keep in mind, that the network plugin needs to manage the pod cidrs then. (Calico does this anyway, but won't be able to autodetect the IPPool)
Kube-Proxy uses cluster-cidr for service traffic routing, which can be disabled optionally.
We have to check if overlapping node and pod cidrs can be used.
Example setup 1:
Tests: (With Cilium and Calico)