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

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

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

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

先决条件

  • 您必须将集群配置为以多租户隔离模式使用 OpenShift SDN Container Network Interface (CNI) 插件。

8.7.1. 接合项目

您可以接合两个或多个项目来允许不同项目中的 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。

8.7.2. 隔离项目

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

先决条件

  • 安装 OpenShift 命令行界面 (CLI),通常称为 oc
  • 您必须作为 cluster-admin 角色用户登录集群。

流程

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

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

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

8.7.3. 对项目禁用网络隔离

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

先决条件

  • 安装 OpenShift 命令行界面 (CLI),通常称为 oc
  • 您必须作为 cluster-admin 角色用户登录集群。

流程

  • 对项目运行以下命令:

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

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