【问题标题】:Is it possible to set a hostname in a Kubernetes replication controller?是否可以在 Kubernetes 复制控制器中设置主机名?
【发布时间】:2017-09-06 08:47:00
【问题描述】:

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

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

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

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

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

    旧答案

    现在 1.2 已经发布,您可以使用 pod.beta.kubernetes.io/hostname 注释在复制控制器或部署 spec 中设置静态主机名。

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

    【讨论】:

    • 是否有可能,这仅适用于部署集而不适用于有状态集?
    • 正确。 Statefulsets 以不同的方式控制名称
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      kubernetes v1.2 中将提供此功能(主机名)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-22
        • 2011-03-17
        • 1970-01-01
        • 1970-01-01
        • 2019-08-09
        • 2016-05-22
        • 1970-01-01
        相关资源
        最近更新 更多