OpenShift:如何创建主机别名

OpenShift:如何创建主机别名,openshift,Openshift,我有一个支持TLS的外部服务,我希望我的播客能够访问该服务 abc.myservice.acme解析为1.2.3.4。我希望用另一个IP地址(比如5.6.7.8)覆盖此IP地址,以便POD使用 我会为每个pod的/etc/hosts添加一个条目来覆盖IP地址,但是我 有一种感觉,这是一种反模式,可能有更好的方法来做到这一点 我调查/尝试: 创建服务+端点。这是可行的,但问题是SSL证书的SAN条目中不存在服务名称,因此我收到一条“SSL:没有其他证书使用者名称与目标主机名‘svc extern

我有一个支持TLS的外部服务,我希望我的播客能够访问该服务

abc.myservice.acme解析为1.2.3.4。我希望用另一个IP地址(比如5.6.7.8)覆盖此IP地址,以便POD使用

我会为每个pod的/etc/hosts添加一个条目来覆盖IP地址,但是我 有一种感觉,这是一种反模式,可能有更好的方法来做到这一点

我调查/尝试:

  • 创建服务+端点。这是可行的,但问题是SSL证书的SAN条目中不存在服务名称,因此我收到一条“SSL:没有其他证书使用者名称与目标主机名‘svc external acme’匹配”消息。当然,我可以将其添加到证书SAN中,但这可能不是正确的解决方案

  • 在worker节点上安装DNSmasq(),但这又像是一个复杂的黑客操作。一定有一个更简单的

  • 主机别名。不幸的是,这只适用于kube 1.7+,但我使用的是openshift 3.5(kube 1.6)。这将是完美的

  • 我有没有办法在openshift中完成#3

    我可以编辑图像以将所需的条目回显到/etc/hosts,但我会将其保存为最后手段


    -也许我回答这个问题有点晚了

    我在开发环境中遇到了一个类似的问题,我们解决这个问题的方法是:

  • 我们使用/etc/hosts文件的所需内容创建了一个配置映射。我正在使用主机增量作为配置映射项的名称
  • 我们在容器(/app/hosts/)内定义该配置映射的装入点。我认为目录/app/hosts应该存在于容器文件系统中,因此您应该在Dockerfile中添加
    RUN mkdir-p/app/hosts
  • 我们通过以下方式修改了部署配置yaml,添加了启动后挂钩:
  • 生命周期:
    启动后:
    执行官:
    命令:
    -/bin/sh
    -“-c”
    - |
    cat/app/hosts/hosts delta>>/etc/hosts
    
    前面的代码段应该放在spec>template>spec>containers元素中

    希望这对某人有帮助