是否可以在Kubernetes复制控制器中设置主机名?

时间:2016-01-05 10:35:34

标签: kubernetes

我需要在Kubernetes复制控制器中设置静态主机名。 Docker支持一些运行时标志,但Kubernetes复制控制器似乎不支持它。 环境:OS - CentOS 6.6 使用sysctl更改变量kernel.hostname的方法对K8s复制控制器不起作用。主机名未更改。 使用: sysctl kernel.hostname 读取当前主机名,和 sysctl kernel.hostname = NEW_HOSTNAME

是否可以在Kubernetes复制控制器中设置主机名?

3 个答案:

答案 0 :(得分:16)

在1.7中,您可以直接在部署规范

中设置主机名
spec:
  replicas: 1
  template:
    spec:
      hostname: myhostname
      containers:
        ...

旧答案

现在1.2已登陆,您可以使用spec注释在Replication Controller或部署pod.beta.kubernetes.io/hostname中设置静态主机名。

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

答案 1 :(得分:3)

Kubernetes(目前)将豆荚视为牛,而不是宠物,因此不宜指定各个豆荚的主机名。关于(重新)使用主机名的需求以及如何解决这个问题,github issue中有一个冗长的讨论。似乎尚未实施的nominal services(a.k.a. PetSet)可能有助于解决此问题。

答案 2 :(得分:1)

此功能(主机名)即将发布于kubernetes v1.2