Home Best Practices Add a Custom Host to Kubernetes

Add a Custom Host to Kubernetes

Author

Date

Category

it's dns it can't be dns

I’ve been working with different MicroK8s instances a lot in the last months. Microk8s, from my point of view, it’s the absolutely perfect abstraction for deploying Kubernetes applications on a “non-cluster” environment.

Although I’m a happy user, there’s a constant pain point that I keep hitting: custom hosts. MicroK8s resolves the domains using the Google DNS (8.8.8.8, 8.8.4.4) and this means that if you need to reach some custom host from inside a pod, you can’t! Well, actually you can! How? Let’s do it!

First, edit the ConfigMap of the coredns using the following command:

kubectl -n kube-system edit configmap/coredns

Add a section called “hosts custom.hosts” where you define the address you want to use (mycustom.host in the example) and point it to the IP address you need (1.2.3.4 in the example). Your ConfigMap should look like this:

data: 
  Corefile: |
      .:53 {
          errors
          health
          ready
          kubernetes cluster.local in-addr.arpa ip6.arpa {
            pods insecure
            fallthrough in-addr.arpa ip6.arpa
          }
          prometheus :9153
          forward . 8.8.8.8 8.8.4.4
          cache 30
          loop
          reload
          loadbalance
          hosts custom.hosts mycustom.host {
            1.2.3.4 mycustom.host
            fallthrough
          }
       }

At this moment, you’ll just need to delete the current core-dns pod and wait for the new one to spawn:

kubectl get pod -A

It’s done! You can now reach that custom host from inside any pod on the cluster and stop googling weird ways of injecting lines in each pod hosts file.

Image for post

Over two years ago, the Codacy team decided to switch their cloud infrastructure to Kubernetes.
If you’d like to learn more about our experience switching to k8s check out blog posts such as DNS Problems Scaling To Kubernetes by our DevOps team. 

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Subscribe to our newsletter

To be updated with all the latest news, offers and special announcements.

Recent posts

Pulse end of Open Beta and new pricing

I'm excited to announce we’re introducing a new pricing model to our Pulse product. Since we launched Pulse, we’ve...

Accelerate book summary and key findings

I find myself explaining the value of adopting outcome-based engineering analytics every day, using the Accelerate book as the definitive reference...

The 4 main types of technical debt

Technical debt is a common metaphor for software's accumulated backlog (like bugs, missing documentation, and legacy code). It can happen because...

Introducing Codacy Labs: our experimental playground

Listening to customers is what makes your product thrive. At Codacy, we deeply care about our customer's needs and that's why we...

May Product Update 🚀

Hi there 👋, Here are a few product updates from May that we've been working on to...