20.11. 分配出口 IP 地址


作为集群管理员,您可以为从一个命名空间中,或从一个命名空间内的特定 pod 中离开集群的网络流量分配一个出口 IP 地址。

20.11.1. 为一个命名空间分配出口 IP 地址

您可以将一个或多个出口 IP 地址分配给一个命名空间,或分配给命名空间中的特定 pod。

先决条件

  • 安装 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
    注意

    无论配置了多少个出口 IP 地址,oc get egressip 只返回一个出口 IP 地址。这并不是程序错误,它是 Kubernetes 的一个限制。作为临时解决方案,您可以传递 -o yaml-o json 标志来返回所有正在使用的出口 IP 地址。

    输出示例

    # ...
    spec:
      egressIPs:
      - 192.168.127.10
      - 192.168.127.11
    # ...

20.11.2. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.