3.2.20. 컨테이너 네트워크 스택 사용
OpenShift Container Platform 라우터는 컨테이너 내부에서 실행되며 기본 동작은 호스트의 네트워크 스택을 사용하는 것입니다(즉, 라우터 컨테이너가 실행되는 노드). 이 기본 동작은 원격 클라이언트의 네트워크 트래픽이 대상 서비스 및 컨테이너에 도달하기 위해 사용자 공간을 통해 여러 개의 홉을 수행하지 않아도 되므로 성능에 도움이 됩니다.
또한 이 기본 동작을 사용하면 라우터에서 노드의 IP 주소를 가져오는 대신 원격 연결의 실제 소스 IP 주소를 가져올 수 있습니다. 이 기능은 원래 IP를 기반으로 수신 규칙을 정의하고, 고정 세션을 지원하고, 다른 용도에서 트래픽을 모니터링하는 데 유용합니다.
이 호스트 네트워크 동작은 --host-network
라우터 명령줄 옵션으로 제어되며 기본 동작은 --host-network=true
를 사용하는 것과 동일합니다. 컨테이너 네트워크 스택을 사용하여 라우터를 실행하려면 라우터를 만들 때 --host-network=false
옵션을 사용합니다. 예를 들면 다음과 같습니다.
$ oc adm router --service-account=router --host-network=false
내부적으로 라우터 컨테이너는 외부 네트워크가 라우터와 통신할 수 있도록 80 및 443 포트를 게시해야 합니다.
컨테이너 네트워크 스택으로 실행하면 라우터에서 연결의 소스 IP 주소가 실제 원격 IP 주소가 아니라 노드의 NATed IP 주소가 되도록 합니다.
다중 테넌트 네트워크 격리 를 사용하는 OpenShift Container Platform 클러스터에서 --host-network=false
옵션과 함께 기본이 아닌 네임스페이스의 라우터는 클러스터의 모든 경로를 로드하지만, 네트워크 격리로 인해 네임스페이스의 경로에 연결할 수 없습니다. host -network=true
옵션을 사용하면 경로에서 컨테이너 네트워크를 바이패스하고 클러스터의 모든 Pod에 액세스할 수 있습니다. 이 경우 격리가 필요한 경우 네임스페이스 전체에서 경로를 추가하지 마십시오.