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

作为集群管理员,您可以部署一个出口路由器 pod,该 pod 被配置为将流量重新定向到指定的目的地 IP 地址。

13.8.1. 重定向模式的出口路由器 pod 规格

Pod 对象中的一个出口路由器 pod 定义其配置。以下 YAML 描述了以重定向模式配置出口路由器 pod 的字段:

apiVersion: v1
kind: Pod
metadata:
  name: egress-1
  labels:
    name: egress-1
  annotations:
    pod.network.openshift.io/assign-macvlan: "true" 1
spec:
  initContainers:
  - name: egress-router
    image: registry.redhat.io/openshift4/ose-egress-router
    securityContext:
      privileged: true
    env:
    - name: EGRESS_SOURCE 2
      value: <egress_router>
    - name: EGRESS_GATEWAY 3
      value: <egress_gateway>
    - name: EGRESS_DESTINATION 4
      value: <egress_destination>
    - name: EGRESS_ROUTER_MODE
      value: init
  containers:
  - name: egress-router-wait
    image: registry.redhat.io/openshift4/ose-pod
1
该注解告知 OpenShift Container Platform 在主网络接口控制器(NIC)上创建一个 macvlan 网络接口,并将 macvlan 接口移到 pod 的网络命名空间中。您必须把 "true" 值包括在引号中。要在不同的 NIC 接口上让 OpenShift Container Platform 创建 macvlan 接口,请将注解值设置为该接口的名称。例如: eth1
2
保留给出口路由器 pod 使用的物理网络的 IP 地址。可选:您可以包括子网长度(/24 后缀),以便正确路由到本地子网。如果没有指定子网长度,则出口路由器只能访问使用 EGRESS_GATEWAY 变量指定的主机,且子网上没有其他主机。
3
值与节点使用的默认网关相同。
4
将流量定向到的外部服务器。使用这个示例,连接到 pod 流量被重新定向到 203.0.113.25,源 IP 地址为 192.168.12.99

出口路由器 pod 规格示例

apiVersion: v1
kind: Pod
metadata:
  name: egress-multi
  labels:
    name: egress-multi
  annotations:
    pod.network.openshift.io/assign-macvlan: "true"
spec:
  initContainers:
  - name: egress-router
    image: registry.redhat.io/openshift4/ose-egress-router
    securityContext:
      privileged: true
    env:
    - name: EGRESS_SOURCE
      value: 192.168.12.99/24
    - name: EGRESS_GATEWAY
      value: 192.168.12.1
    - name: EGRESS_DESTINATION
      value: |
        80   tcp 203.0.113.25
        8080 tcp 203.0.113.26 80
        8443 tcp 203.0.113.26 443
        203.0.113.27
    - name: EGRESS_ROUTER_MODE
      value: init
  containers:
  - name: egress-router-wait
    image: registry.redhat.io/openshift4/ose-pod