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

Ser*_*ola 10 kubernetes

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

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

mor*_*och 19

在1.7中,您可以直接在部署规范中设置主机名

spec:
  replicas: 1
  template:
    spec:
      hostname: myhostname
      containers:
        ...
Run Code Online (Sandbox Code Playgroud)

老答案

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

spec:
  replicas: 1
  template:
    metadata:
      annotations:
        pod.beta.kubernetes.io/hostname: myhostname
      labels:
        ...
Run Code Online (Sandbox Code Playgroud)


Yu-*_*ong 6

Kubernetes(目前)将 pod 视为牛,而不是宠物,因此指定单个 pod 的主机名是不可取的。关于(重新)使用主机名的需求以及如何解决这个问题,在github 问题中有一个冗长的讨论。似乎尚未实施的名义服务(又名 PetSet)可能有助于解决此问题。