Hello fellow TCP users,

I am moving my homelab from Docker to Kubernetes (because I have nothing to do with my homelab anymore) and I am having an issue with services that need to be accessible both within the cluster and from the outside world on the same hostname.

For an example, supposedly you have two pods: A and B which are accessible via the Gateway with hostname a.example.com and b.example.com respectively. Pod A also need to contact Pod B so there are two ways to do this:

  • Via b.example.com. This works but in this case, the traffic will go from pod A -> the boarder internet -> the loadbalancer -> the gateway -> pod B which is not very optimal.
  • Via b.default.svc.cluster.local. This also works but in this case you lose:

In Docker case, I can just set the alias of my reverse-proxy container to b.example.com and it is done. I am wondering is there anything I can do to get the traffic goes from pod A -> the gateway -> pod B in Kubernetes. Also is this a common issue or not because I don’t see a lot of articles about this issue on the internet :/

Thank you very much!

  • xana@lemmy.zipOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    12 hours ago

    yeah but K8S already has coredns so I am hoping that I can customize it somehow

    • relaymoth@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 hours ago

      Local DNS with rewrites is the answer. Don’t mess with CoreDNS unless you know what you’re doing. It has the potential to fubar the cluster DNS.

      Running a local DNS server is super easy, especially compared to managing a kubernetes cluster. Install Adguard Home or Pihole, set your devices to use this server, and add some rewrites. That’s it.