Add a Custom Host to Kubernetes

In this article:
Subscribe to our blog:

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. 

RELATED
BLOG POSTS

What switching to Kubernetes means for Codacy and our customers
More than a year ago the Codacy team decided to switch their cloud infrastructure to Kubernetes (k8s), a popular open source system. Kubernetes allows...
Spring tech events with Codacy: Coverage & what's next
Although many Spring tech events are being canceled or turning virtual due to coronavirus we are fortunate to have already participated in some this...
DNS problems scaling with Kubernetes
Here at Codacy, everyone has been working really hard in the last few months to move all of our services to Kubernetes. And it has been a bumpy road…...

Automate code
reviews on your commits and pull request

Group 13