How to bring up the Kubernetes dual stack support?
Prerequisites
- You must be using Kubernetes 1.16 (alpha feature) or later (1.20 beta feature).
- Your cloud provider or underlying network must be able to provide Kubernetes nodes with routable IPv4 and IPv6 network interfaces.
- At least two nodes.IPv6 and IPv6 forwarding must be enabled:
sysctl -w net.ipv6.conf.all.disable_ipv6=0
sysctl -w net.ipv6.conf.all.forwarding=1 - All the nodes must have an IPv6 address and they should be able to reach others over an IPv6 connection.
- IPv6 forwarding must be enabled (sysctl -w net.ipv6.conf.all.forwarding=1)
Options to add:
- kube-controller-manager
- –-feature-gates="IPv6DualStack=true"
- –-cluster-cidr=<IPv4 CIDR>,<IPv6 CIDR>
- –-service-cluster-ip-range=<IPv4 CIDR>,<IPv6 CIDR>
- kubelet
- –-feature-gates="IPv6DualStack=true"
- kube-proxy
- –-proxy-mode=ipvs
- –-cluster-cidrs=<IPv4 CIDR>,<IPv6 CIDR> –-feature-gates="IPv6DualStack=true":
Edit netplan configuration file (/etc/netplan/50-vagrant.yaml). Add IPv6 address to list of addresses and set in interface section:
accept-ra: no
After that netplan apply needs to be called.
--pod-network-cidr=10.233.64.0/18,2001:db8:1234:5678:8:2::/64 \
--service-cidr=10.96.0.0/12,2001:db8:1234:5678:8:3::/108 \
--feature-gates=IPv6DualStack=true \
--apiserver-advertise-address=10.10.10.13