> <i>what do you do if your ISP changes your IP addresses?</i><p>I update the DNS record. Manually. It's a once in a blue moon thing, and I assume the probability of it is low enough that it will not occur when I'm so far from home that "it can wait until I get home" doesn't suffice.<p>15+ years or so now, and that strategy has worked just fine.<p>… TFA's intro could do with explaining why the IP is so hard coded in the cluster, or in the router? My home router just does normal port-forwarding to my home cluster. My cluster … doesn't need to know its own IP? It just uses normal Ingress objects. (And ingress-nginx.) I'm wondering if this is partly complexity introduced by having a |cluster| > 1, and I'm just on duck tales here. Y'all have multiple non-mobile machines? (I have a desktop & a laptop. I'm not running k8s on the laptop… because it's a laptop. I … suppose I could … and deal with connectivity to the desktop with like Wireguard or something but … why?)<p>My previous ISP offered static IP addresses, and I had one, since I had a somewhat special offer where the price wasn't terrible. It changed on me one day. They refused to fix that. I was very disappointed.
Crazy that someone is using something as complex as k8s on a home server and without knowing basics.<p>Newbies are better served starting with the simple stuff and then moving to the complex if needed
How about a wireguard tunnel from an ingress box? You still pay for one VPS, but can run everything locally and just load balance at the ingress. I just manually add configs to nginx, but there are automated tools too.
This is an example of optimizing something that shouldn't exist. They can simplify all of this by adding Cloudflare tunnel or Wireguard to proxy traffic from the outside world to a k8s Service running in the cluster.
I have one A record for my home ip address. This is dynamically updated by my router whenever the public IP address changes. Everything else is a CNAME pointing at the A record. Completely set and forget and supported by most of the shelf consumer routers or router OS like vyos.<p>This is a much preferable solution to me as there are no changes to external-dns resources when the public IP changes. Granted, i don’t run a dual stack setup.
Kubernetes admin here with ~2y experience. Since a lot of you have misconception of what this guy is doing I will try to explain. Author wrote a piece of code which will interact with network gateway to get IPv4/IPv6 network address and then update kubernetes configuration accordingly from within a container running on said cluster. That seems to be needed, because MetalLB component in use exposes kubernetes deployments in cluster via predefined IPv6 network address pool which is given from ISP, so if that changes, cluster configuration should change too. This is one of most bizarre things I have read about kubernetes this year and probably shouldn't exist outside a home testing environment, but hey, props to author for coming up with such idea.
"My ISP is in total control over my external IP addresses. I don’t pay for permanent IP addresses, and while they haven’t so far changed neither my IPv4 address or my IPv6 network, it can happen. Probably by mistake, since I have no kept my current ones for three months"<p>If you can't shell a buck or persuade your isp to reserve a static ip for you. Try to persuade their dhcp server.<p><a href="https://datatracker.ietf.org/doc/html/rfc2131#section-3.5" rel="nofollow">https://datatracker.ietf.org/doc/html/rfc2131#section-3.5</a><p>And, again, if you can't handle fundamentals, drop the Google level tech. You are not that deep.
Uhh. What is all this for? My IP address can change. I just use a dynamic DNS client to update my DNS record using my registrar's API. It's been this way since, like, 2001? (Well, most registrars didn't have APIs back then, but there was dyndns).
Thanks for the post. I ran into the same issue with assigning IPv6 addresses to k8s pods. Wish there were easier solutions to handle the prefix changing.
Dealing with changing residential ips is nothing new. It's interesting to see how it's still being solved for even in this overly complex k8s landscape we find ourselves in now.<p>Back in the day we'd use free services like <a href="https://freedns.afraid.org/" rel="nofollow">https://freedns.afraid.org/</a> on a cron to refresh the ip every so often.<p>I used afraid to refresh my dial up ip address, for my "hosting service" domain. The "hosting service" was an old tower pc living in the cabinet underneath a fish tank. Ops was a lot different back then...<p>Nowadays, if you're poking holes in your firewall and exposing your ip address to the world, you're doing it wrong. We've moved away from that model. There's no need to do that and expose yourself in those ways, when you can instead tunnel out. Cloudflare/argo tunnels, or tailscale tunnels, dial out from your service and don't expose your system directly to the open internet. Clourflare will even automagically set the dns for your domain to always route through that tunnel. Your isp allocated ip address is irrelevant, and nothing ever needs it because nothing ever routes to it. Your domain routes to a cf endpoint, and your system tunnels out to it, meeting in the middle. No open ports, no firewall rules, no NAT bs. Only downside is, you're relying on and trusting services like cf and tailscale.
My experience is this is no longer a problem. Ever since the US gov legalized data mining/spying/tracking I have not had my residential IP change. I think its more profitable to spy by essentially giving "free" static IPs to all customers.