26.16. 使用 OpenShift SDN 配置网络隔离

当集群配置为使用 OpenShift SDN 网络插件的多租户隔离模式时,每个项目会被默认隔离。在多租户隔离模式下,不同项目中的 pod 或服务间不允许网络流量。

您可以通过两种方式更改项目的多租户隔离行为:

  • 您可以接合一个或多个项目,允许不同项目中的 pod 和服务间的网络流量。
  • 您可以对项目禁用网络隔离。它可全局访问,接受所有其他项目中的 pod 和服务的网络流量。可全局访问的项目可以访问所有其他项目中的 pod 和服务。

26.16.1. 先决条件

  • 您必须将集群配置为在多租户隔离模式中使用 OpenShift SDN 网络插件。

26.16.2. 接合项目

您可以接合两个或多个项目,以允许不同项目中的 Pod 和服务间的网络流量。

先决条件

  • 安装 OpenShift CLI (oc) 。
  • 您必须作为 cluster-admin 角色用户登录集群。

流程

  1. 使用以下命令,将项目接合到现有项目网络中:

    $ oc adm pod-network join-projects --to=<project1> <project2> <project3>

    另外,除了指定具体的项目名称,也可以使用 --selector=<project_selector> 选项来基于关联标签指定项目。

  2. 可选:运行以下命令来查看您接合在一起的 Pod 网络:

    $ oc get netnamespaces

    NETID 列中,同一 Pod 网络中的项目具有相同的网络 ID。

26.16.3. 隔离项目

您可以隔离项目,使其他项目中的 pod 和服务无法访问这个项目中的 pod 和服务。

先决条件

  • 安装 OpenShift CLI (oc) 。
  • 您必须作为 cluster-admin 角色用户登录集群。

流程

  • 要隔离集群中的项目,请运行以下命令:

    $ oc adm pod-network isolate-projects <project1> <project2>

    另外,除了指定具体的项目名称,也可以使用 --selector=<project_selector> 选项来基于关联标签指定项目。

26.16.4. 对项目禁用网络隔离

您可以对项目禁用网络隔离。

先决条件

  • 安装 OpenShift CLI (oc) 。
  • 您必须作为 cluster-admin 角色用户登录集群。

流程

  • 对项目运行以下命令:

    $ oc adm pod-network make-projects-global <project1> <project2>

    另外,除了指定具体的项目名称,也可以使用 --selector=<project_selector> 选项来基于关联标签指定项目。