I'd want to enable IPv6 for a dual-stack deploymen...
# k3s
v
I'd want to enable IPv6 for a dual-stack deployment, but I saw in the docs that this is only possible at cluster creation. Is there some way to migrate everything from an existing cluster to a new (dual-stack) one?
s
I believe it is possible to add IPv6 addresses to an already provisioned K3s cluster at the time of an upgrading install (if you see what I mean). K3s upgrades are achieved with an install that upgraded the current. During that upgrade you must set the
cluster-cidr
and
service-cidr
to include BOTH the current IPv4 address AND the new IPv6 address. I've registered for some IPv6 unique local address (obfuscated below for reasons) which I use with specifically selected IPv4 private addresses. My upgrades are driven by Ansible. I write the k3s config file to
"/etc/rancher/k3s/config.yaml
and for the upgrade adding IPv6 and beyond my config file includes:
Copy code
....
          cluster-cidr: "10.1.0.0/16,fd30:1234:abcd:1::/56"
          service-cidr: "10.2.0.0/18,fd30:1234:abcd:2::/112"
          flannel-backend: "wireguard-native"
          flannel-ipv6-masq: true
          ....
Make sure you have the correct IPv4 and IPv6 addresses, because you cannot change addresses in a cluster, so (1) don't break you existing IPv4, and (2) pick the right IPv6 because it's a one-way journey.
v
Thanks for the suggestion! I might've been missing the flannel options, because I was running into some etcd connection issues (which I believed was https://github.com/k3s-io/k3s/issues/13049 but I was just guessing) Let me try again
Yeah this isn't working for me. I keep running into various walls like • node pod cidrs still being ipv4 only resulting in no pods getting scheduled • flannel failing to start (most likely because it's trying to add invalid routes to tailscale) • kube-dns service getting bugged by k3s's static yaml
@sticky-summer-13450 could you maybe share your config.yaml and install command for reference?