15.12. 以重定向模式部署出口路由器 pod

作为集群管理员,您可以部署出口路由器 Pod,将流量重新指向来自保留源 IP 地址的指定目标 IP 地址。

出口路由器实施使用出口路由器 Container Network Interface(CNI)插件。

重要

egress router CNI 插件只是一个技术预览功能。技术预览功能不被红帽产品服务等级协议 (SLA) 支持,且可能在功能方面有缺陷。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的详情,请参阅 https://access.redhat.com/support/offerings/techpreview/

15.12.1. 重定向模式下出口路由器的网络附加定义

在 Pod 可以充当出口路由器之前,您必须将网络接口配置指定为 NetworkAttachmentDefinition 对象。对象指定要附加到出口路由器 Pod、网络目的地和网络网关的 IP 地址等信息。当出口路由器的 pod 启动时,Multus 使用网络附加定义向 pod 添加带有指定属性的网络接口。

网络附加定义示例

apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
  name: egress-router-redirect  1
spec:
  config: '{
    "cniVersion": "0.4.0",
    "type": "egress-router",
    "name": "egress-router",
    "ip": {
      "addresses": [
        "192.168.12.99/24"  2
        ],
      "destinations": [
        "192.168.12.91/32"  3
        ],
      "gateway": "192.168.12.1"  4
      }
    }'

1
网络附加定义的名称稍后用于出口路由器 Pod 的规格中。
2
addresses 键指定用于额外网络接口的保留源 IP 地址。在 CIDR 标记中指定一个 IP 地址,如 192.168.12.99/24
3
destinations 键在 CIDR 标记中指定一个 IP 地址,出口路由器将数据包发送到这个地址。出口路由器 Pod 的网络地址转换(NAT)表被配置为将到 pod 的集群 IP 地址的连接重定向到目标 IP 地址上的相同端口。使用此示例,到 pod 的连接会被重定向为 192.168.12.91,源 IP 地址为 192.168.12.99
4
gateway键用于指定网络网关的 IP 地址。