Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add custom host entries to kubernetes Pods?

My application communicates to some services via hostnames. When running my application as a docker container i used to add hostnames to the /etc/hosts of the hostmachine and run the container using --net=host.

Now I'm running my containers in kubernetes cluster. I would like to know how can i add the /etc/hosts entries to the pod via yaml.

I'm using kubernetes v1.5.3.

like image 469
Karthik Avatar asked Oct 16 '25 12:10

Karthik


2 Answers

From k8s 1.7 you can add hostAliases. Example from the docs:

apiVersion: v1
kind: Pod
metadata:
  name: hostaliases-pod
spec:
  restartPolicy: Never
  hostAliases:
  - ip: "127.0.0.1"
    hostnames:
    - "foo.local"
    - "bar.local"
  - ip: "10.1.2.3"
    hostnames:
    - "foo.remote"
    - "bar.remote"
like image 167
isalgueiro Avatar answered Oct 18 '25 07:10

isalgueiro


Host files are going to give you problems, but if you really need to, you could use a configmap.

Add a configmap like so

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-app-hosts-file-configmap
data:
  hosts: |-
    192.168.0.1 gateway
    127.0.0.1 localhost

Then mount that inside your pod, like so:

  volumeMounts:
    - name: my-app-hosts-file
      mountPath: /etc/
volumes:
  - name: my-app-hosts-file
    configMap:
    name: my-app-hosts-file-configmap
like image 20
jaxxstorm Avatar answered Oct 18 '25 06:10

jaxxstorm