如何正确设置 openshift 的绑定

如何正确设置 openshift 的绑定

我已经设置了 redhat 的 Openshift 来源实例,有时无法从外部解析各个应用程序的域。

我有两台物理机器正在运行,它们都有自己的公共 IP 地址。一台设置为代理 (broker.cloud.example.com),另一台是 openshift 节点 (node-1.cloud.example.com)。我使用 oo-install 工具安装了 openshift origin。oo-install 在代理上设置绑定。

这些应用程序在自己的域(我们称之为 example-cloud.com)上运行,因此它们的名称是«app»-«namespace».example-cloud.com。代理上的绑定将其正确解析为CNAME node-1.cloud.example.com.。我已将代理设置为 example-cloud.com 的权威服务器。代理不对 example.com 或 cloud.example.com 区域负责。

大多数情况下,此设置都运行良好。但有时,应用程序的名称无法解析。我发现dig,在这些情况下,查询(向我的 ISP 的 DNS 服务器)会产生以下结果:

;; ANSWER SECTION:
«app»-«namespace».example-cloud.com. 14400  IN CNAME node-1.cloud.example.com.

而在正常情况下(当解析工作正常时),答案部分包含一行附加行:

;; ANSWER SECTION:
«app»-«namespace».example-cloud.com. 14400  IN CNAME node-1.cloud.example.com.
node-1.cloud.example.com. 14400 IN  A   x.x.x.x

当我直接询问代理时,我只得到前者(这让我相信它的配置不正确)。如果我在代理的绑定实例上启用递归查询,我会得到后者。

但我听说回答递归查询的服务器很危险,所以我再次禁用了它(因此我的关于递归和转发之间的区别的问题)。

所以我想我的问题如下:

  1. 我是否对代理进行了错误配置?
    1. 如果是这样…
      1. 我如何解决它?
      2. 有没有办法允许对 *.cloud.example.com 进行递归查询但不允许对其他域进行递归查询?
      3. 这是 oo-install 中的一个错误吗?
    2. 如果不…
      1. cloud.example.com 的 DNS 可能有故障吗?
      2. 我该如何测试呢?
  2. 或者,以 openshift 无关的方式表述(因为 DNS 专家的数量可能比 openshift 专家的数量还多):如果某个服务器对某个区域具有权威性,并且它在另一个区域中返回 CNAME,是否也需要(递归地)解决这个问题

更新

依靠oo-accept-broker经纪商收益

PASS

绑定配置文件

猫/etc/named.conf

// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
    listen-on port 53 { any; };
    directory "/var/named";
    dump-file "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query { any; };

    // NOTE: I’ve added the public IP addresses of the broker and the node to this list.
    // This is where I put “any” to “enable recursive queries on the broker’s bind instance” (see above)
    allow-recursion {x.x.x.x;y.y.y.y;"localhost";"localnets";};

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";

    // set forwarding to the next nearest server (from DHCP response
    forward only;
    include "forwarders.conf";
};

logging {
    channel default_debug {
        file "data/named.run";
        severity dynamic;
    };
};

// use the default rndc key
include "/etc/rndc.key";

controls {
    inet 127.0.0.1 port 953
    allow { 127.0.0.1; } keys { "rndc-key"; };
};

include "/etc/named.rfc1912.zones";

include "example-cloud.com.key";

zone "example-cloud.com" IN {
    type master;
    file "dynamic/example-cloud.com.db";
    allow-update { key example-cloud.com ; } ;
};

// create a place for openshift infrastructure ip/name mapping
include "oo_infrastructure.conf";

猫/var/named/oo_infrastructure.conf

// no openshift infrastructure zone

相关内容