×

作为集群管理员,您可以为离开集群的命名空间或命名空间中特定 Pod 的流量分配出站 IP 地址。

为命名空间分配出站 IP 地址

您可以为命名空间或命名空间中的特定 Pod 分配一个或多个出站 IP 地址。

先决条件
  • 安装 OpenShift CLI (oc)。

  • 以集群管理员身份登录集群。

  • 配置至少一个节点来托管出站 IP 地址。

步骤
  1. 创建EgressIP对象

    1. 创建一个<egressips_name>.yaml文件,其中<egressips_name>是对象的名称。

    2. 在您创建的文件中,定义一个EgressIP对象,如下例所示

      apiVersion: k8s.ovn.org/v1
      kind: EgressIP
      metadata:
        name: egress-project1
      spec:
        egressIPs:
        - 192.168.127.10
        - 192.168.127.11
        namespaceSelector:
          matchLabels:
            env: qa
  2. 要创建对象,请输入以下命令。

    $ oc apply -f <egressips_name>.yaml (1)
    1 <egressips_name>替换为对象的名称。
    示例输出
    egressips.k8s.ovn.org/<egressips_name> created
  3. 可选:存储<egressips_name>.yaml文件,以便以后可以进行更改。

  4. 向需要出站 IP 地址的命名空间添加标签。要向步骤 1 中定义的EgressIP对象的命名空间添加标签,请运行以下命令

    $ oc label ns <namespace> env=qa (1)
    1 <namespace>替换为需要出站 IP 地址的命名空间。
验证
  • 要显示集群中正在使用的所有出站 IP,请输入以下命令

    $ oc get egressip -o yaml

    命令oc get egressip只返回一个出站IP地址,无论配置了多少个。这不是错误,而是 Kubernetes 的限制。作为解决方法,您可以传入-o yaml-o json标志以返回所有正在使用的出站IP地址。

    示例输出
    # ...
    spec:
      egressIPs:
      - 192.168.127.10
      - 192.168.127.11
    # ...

其他资源