什么组件正在解析 OpenShift 路由器中的域

What component is resolving domain in OpenShift router

我正在使用 OpenShift 路由器,默认情况下路由器是基于 haproxy 的。当我创建一个域,例如 aa.bb.cc,然后我可以通过此路由访问我的服务。

我看到路由器 (haproxy) pods 是 运行 我的集群,我的问题是,当我卷曲 http://aa.bb.cc 时,域 aa.bb.cc 如何到达 haproxy pods?哪个组件正在解析域 aa.bb.cc?

那将是包含通配符域的 DNS 服务器。我们的流程通常如下:

 *.apps.example.com
                                       +
+-----------------+                    |
|   DNS Server    |                    |
+-----+-----------+                    |       OpenShift Cluster
      ^    |                           |
      |    |                           |
      |    | LB IP                     |
      |    |                           |
      |    v                           |
    +-+----+--+      +--------------+  | +---------------+                +----------+
    |         |      |              |  | |               |                |          |
    | Clients +------> Loadbalancer +-----> HAProxy      +--------------->+ App Pods |
    |         |      |              |  | |               |                |          |
    +---------+      +--------------+  | +---------------+                +----------+
                                       |
                                       +

您的客户端将使用其常规 DNS 服务器来解析应用程序域。通常,OpenShift 集群上的所有应用程序路由 运行 都有一个 通配符 DNS 条目(例如 *.apps.example.com)。因此,当您的客户端请求 myapp.apps.example.com 时,将返回 OpenShift 集群的 Loadbalancer IP。

负载均衡器反过来知道 OpenShift 路由器 是 运行 的所有节点。所以 Loadbalancer 会将请求转发到这些节点中的任何一个。

如您所述,OpenShift Router 运行 HAProxy 正在查看 HTTP Host HeaderSNI 扩展 用于 TLS 连接以检查连接需要转发到哪里。

HAProxy 有一个动态配置,它是从集群中的路由/服务派生出来的,然后将您的请求转发到您的应用程序Pods.