This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.10.9. 以 DNS 代理模式部署出口路由器 pod
作为集群管理员,您可以将配置为代理流量的出口路由器 pod 部署到指定的 DNS 名称和 IP 地址。
10.9.1. DNS 模式的出口路由器 pod 规格 复制链接链接已复制到粘贴板!
为 Pod
对象中的一个出口路由器 pod 定义其配置。以下 YAML 描述了在 DNS 模式中配置出口路由器 pod 的字段:
- 1
- 在启动
egress-router
容器前,在主网络接口上创建一个 macvlan 网络接口,并将该接口移到 pod 网络命名空间中。您必须把"true"
值包括在引号中。要在主接口以外的网络接口上创建 macvlan 接口,请将注解值设置为该接口的名称。例如:eth1
。 - 2
- 保留给出口路由器 pod 使用的物理网络的 IP 地址。可选:您可以包括子网长度(
/24
后缀),以便正确路由到本地子网。如果没有指定子网长度,则出口路由器只能访问使用EGRESS_GATEWAY
变量指定的主机,且子网上没有其他主机。 - 3
- 值与节点使用的默认网关相同。
- 4
- 指定一个或多个代理目的地列表。
- 5
- 可选:指定输出 DNS 代理日志输出到
stdout
。
10.9.2. 出口目的地配置格式 复制链接链接已复制到粘贴板!
当路由器以 DNS 代理模式部署时,您会指定一个端口和目标映射列表。目的地可以是 IP 地址,也可以是 DNS 名称。
出口路由器 pod 支持以下格式来指定端口和目的地映射:
- 端口和远程地址
-
您可以使用两个字段格式来指定源端口和目标主机:
<port> <remote_address>
。
主机可以是 IP 地址或 DNS 名称。如果提供了 DNS 名称,DNS 解析会在运行时进行。对于给定主机,代理在连接到目标主机的 IP 地址时连接到目标主机上指定的源端口。
端口和远程地址对示例
80 172.16.12.11 100 example.com
80 172.16.12.11
100 example.com
- 端口、远程地址和远程端口
-
您可以使用三字段格式
<port> <remote_address> <remote_port>
指定源端口、目标主机和目的地端口。
三字段格式的行为与两字段版本相同,但目的地端口可能与源端口不同。
端口、远程地址和远程端口示例
8080 192.168.60.252 80 8443 web.example.com 443
8080 192.168.60.252 80
8443 web.example.com 443
10.9.3. 以 DNS 代理模式部署出口路由器 pod 复制链接链接已复制到粘贴板!
在 DNS 代理模式 中,出口路由器 pod 作为基于 TCP 服务的 DNS 代理运行,将其自身的 IP 地址转换到一个或多个目标 IP 地址。
先决条件
-
安装 OpenShift CLI(
oc
)。 -
以具有
cluster-admin
特权的用户身份登录。
流程
- 创建出口路由器 pod。
为出口路由器 pod 创建服务:
创建名为
egress-router-service.yaml
的文件,其包含以下 YAML。将spec.ports
设置为您之前为EGRESS_DNS_PROXY_DESTINATION
环境变量定义的端口列表。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要创建服务,请输入以下命令:
oc create -f egress-router-service.yaml
$ oc create -f egress-router-service.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod 现在可以连接至此服务。使用保留的出口 IP 地址将其代理到外部服务器的对应端口。