25.14. OpenShift SDN을 사용하여 네트워크 격리 구성

OpenShift SDN 네트워크 플러그인에 다중 테넌트 격리 모드를 사용하도록 클러스터를 구성하면 기본적으로 각 프로젝트가 격리됩니다. 다중 테넌트 격리 모드에서 다른 프로젝트의 pod 또는 Service 간에 네트워크 트래픽이 허용되지 않습니다.

두 가지 방법으로 프로젝트의 다중 테넌트 격리 동작을 변경할 수 있습니다.

  • 하나 이상의 프로젝트에 참여하여 다른 프로젝트의 pod와 service 간에 네트워크 트래픽을 허용할 수 있습니다.
  • 프로젝트의 네트워크 격리를 비활성화할 수 있습니다. 다른 모든 프로젝트에서 pod 및 service의 네트워크 트래픽을 수락하여 전역에서 액세스할 수 있습니다. 전역에서 액세스 가능한 프로젝트는 다른 모든 프로젝트의 pod 및 service에 액세스할 수 있습니다.

25.14.1. 사전 요구 사항

  • 다중 테넌트 격리 모드에서 OpenShift SDN 네트워크 플러그인을 사용하도록 구성된 클러스터가 있어야 합니다.

25.14.2. 프로젝트 참여

두 개 이상의 프로젝트에 참여하여 다른 프로젝트의 Pod와 Service 간 네트워크 트래픽을 허용할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 역할이 있는 사용자로 클러스터에 로그인해야 합니다.

절차

  1. 다음 명령을 사용하여 기존 프로젝트 네트워크에 프로젝트를 결합합니다.

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

    또는 특정 프로젝트 이름을 지정하는 대신 --selector=<project_selector > 옵션을 사용하여 관련 레이블을 기반으로 프로젝트를 지정할 수 있습니다.

  2. 선택 사항: 다음 명령을 실행하여 결합한 Pod 네트워크를 봅니다.

    $ oc get netnamespaces

    동일한 Pod 네트워크에 있는 프로젝트는 NETID 열에 동일한 네트워크 ID를 갖습니다.

25.14.3. 프로젝트 격리

다른 프로젝트의 Pod 및 Service가 해당 Pod 및 Service에 액세스할 수 없도록 프로젝트를 격리할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 역할이 있는 사용자로 클러스터에 로그인해야 합니다.

절차

  • 클러스터에서 프로젝트를 격리하려면 다음 명령을 실행합니다.

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

    또는 특정 프로젝트 이름을 지정하는 대신 --selector=<project_selector > 옵션을 사용하여 관련 레이블을 기반으로 프로젝트를 지정할 수 있습니다.

25.14.4. 프로젝트의 네트워크 격리 비활성화

프로젝트의 네트워크 격리를 비활성화할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 역할이 있는 사용자로 클러스터에 로그인해야 합니다.

절차

  • 프로젝트에 대해 다음 명령을 실행합니다.

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

    또는 특정 프로젝트 이름을 지정하는 대신 --selector=<project_selector > 옵션을 사용하여 관련 레이블을 기반으로 프로젝트를 지정할 수 있습니다.