Is it possible to set a hostname in a Kubernetes replication controller?

1/5/2016

I need to set a static hostname in a Kubernetes replication controller. Docker supports it with some runtime flags, however, Kubernetes replication controllers don't appear to support it. The environment: OS - CentOS 6.6 Approach to use sysctl to change the variable kernel.hostname does not work for a K8s replication controller. The host name is not changed. Use: sysctl kernel.hostname to read the current hostname, and sysctl kernel.hostname=NEW_HOSTNAME

Is it possible to set a hostname in a Kubernetes replication controller?

-- Sergey Smola
kubernetes

3 Answers

4/27/2016

In 1.7 you can set the hostname directly in the Deployment spec

spec:
  replicas: 1
  template:
    spec:
      hostname: myhostname
      containers:
        ...

Old Answer

Now that 1.2 has landed, you can set a static hostname in a Replication Controller or Deployment spec using the pod.beta.kubernetes.io/hostname annotation.

spec:
  replicas: 1
  template:
    metadata:
      annotations:
        pod.beta.kubernetes.io/hostname: myhostname
      labels:
        ...
-- morloch
Source: StackOverflow

1/5/2016

Kubernetes (currently) treats pods as cattle, not pets, so it's undesirable to specify hostnames of the individual pods. There is a lengthy discussion in the github issue on the needs of (re-)using hostnames and how to solve that. It seems that the nominal services (a.k.a. PetSets), which is yet to be implemented, may help resolve this issue.

-- Yu-Ju Hong
Source: StackOverflow

2/12/2016

This feature (hostnames) is coming in kubernetes v1.2

-- Tim Hockin
Source: StackOverflow