15.14. OpenShift SDN을 사용하여 네트워크 격리 구성
OpenShift SDN CNI 플러그인에 다중 테넌트 격리 모드를 사용하도록 클러스터를 구성하면 기본적으로 각 프로젝트가 격리됩니다. 다중 테넌트 격리 모드에서 다른 프로젝트의 pod 또는 Service 간에 네트워크 트래픽이 허용되지 않습니다.
두 가지 방법으로 프로젝트의 다중 테넌트 격리 동작을 변경할 수 있습니다.
- 하나 이상의 프로젝트에 참여하여 다른 프로젝트의 pod와 service 간에 네트워크 트래픽을 허용할 수 있습니다.
- 프로젝트의 네트워크 격리를 비활성화할 수 있습니다. 다른 모든 프로젝트에서 pod 및 service의 네트워크 트래픽을 수락하여 전역에서 액세스할 수 있습니다. 전역에서 액세스 가능한 프로젝트는 다른 모든 프로젝트의 pod 및 service에 액세스할 수 있습니다.
15.14.1. 사전 요구 사항
- 다중 테넌트 격리 모드에서 OpenShift SDN CNI(Container Network Interface) 플러그인을 사용하도록 구성된 클러스터가 있어야 합니다.
15.14.2. 프로젝트 참여
두 개 이상의 프로젝트에 참여하여 다른 프로젝트의 Pod와 Service 간 네트워크 트래픽을 허용할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
역할을 가진 사용자로 클러스터에 로그인해야 합니다.
프로세스
다음 명령을 사용하여 기존 프로젝트 네트워크에 프로젝트를 결합합니다.
$ oc adm pod-network join-projects --to=<project1> <project2> <project3>
또는 특정 프로젝트 이름을 지정하는 대신
--selector=<project_selector>
옵션을 사용하여 관련 레이블을 기반으로 프로젝트를 지정할 수 있습니다.선택 사항: 다음 명령을 실행하여 함께 참여한 Pod 네트워크를 확인합니다.
$ oc get netnamespaces
동일한 Pod 네트워크에 있는 프로젝트는 NETID 열에서 동일한 네트워크 ID를 보유합니다.
15.14.3. 프로젝트 격리
다른 프로젝트의 Pod 및 Service가 해당 Pod 및 Service에 액세스할 수 없도록 프로젝트를 격리할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
역할을 가진 사용자로 클러스터에 로그인해야 합니다.
프로세스
클러스터에서 프로젝트를 격리하려면 다음 명령을 실행합니다.
$ oc adm pod-network isolate-projects <project1> <project2>
또는 특정 프로젝트 이름을 지정하는 대신
--selector=<project_selector>
옵션을 사용하여 관련 레이블을 기반으로 프로젝트를 지정할 수 있습니다.
15.14.4. 프로젝트의 네트워크 격리 비활성화
프로젝트의 네트워크 격리를 비활성화할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
역할을 가진 사용자로 클러스터에 로그인해야 합니다.
프로세스
프로젝트에 대해 다음 명령을 실행합니다.
$ oc adm pod-network make-projects-global <project1> <project2>
또는 특정 프로젝트 이름을 지정하는 대신
--selector=<project_selector>
옵션을 사용하여 관련 레이블을 기반으로 프로젝트를 지정할 수 있습니다.