2.7. OVN-Kubernetes 논리 아키텍처
OVN은 네트워크 가상화 솔루션입니다. 논리적 스위치와 라우터를 생성합니다. 이러한 스위치와 라우터는 상호 연결되어 네트워크 토폴로지를 생성합니다. 로그 수준을 2 또는 5로 설정하여 ovnkube-trace를
실행하면 OVN-Kubernetes 논리적 구성 요소가 노출됩니다. 다음 다이어그램은 OpenShift Container Platform에서 라우터와 스위치가 어떻게 연결되는지 보여줍니다.
그림 2.2. OVN-Kubernetes 라우터 및 스위치 구성 요소
패킷 처리에 관련된 주요 구성 요소는 다음과 같습니다.
- 게이트웨이 라우터
-
게이트웨이 라우터는 때때로 L3 게이트웨이 라우터라고도 불리며, 일반적으로 분산 라우터와 물리적 네트워크 사이에서 사용됩니다. 논리적 패치 포트를 포함한 게이트웨이 라우터는 물리적 위치(분산되지 않음) 또는 섀시에 바인딩됩니다. 이 라우터의 패치 포트는 ovn-southbound 데이터베이스(
ovn-sbdb
)에서 l3gateway 포트로 알려져 있습니다. - 분산 논리 라우터
- 가상 머신과 컨테이너가 연결되는 분산된 논리적 라우터와 그 뒤에 있는 논리적 스위치는 각 하이퍼바이저에 효과적으로 상주합니다.
- 로컬 스위치에 가입하세요
- 로컬 스위치는 분산 라우터와 게이트웨이 라우터를 연결하는 데 사용됩니다. 분산 라우터에 필요한 IP 주소 수가 줄어듭니다.
- 패치 포트가 있는 논리 스위치
- 패치 포트가 있는 논리적 스위치는 네트워크 스택을 가상화하는 데 사용됩니다. 그들은 터널을 통해 원격 논리 포트를 연결합니다.
- 로컬넷 포트가 있는 논리 스위치
- 로컬넷 포트가 있는 논리적 스위치는 OVN을 물리적 네트워크에 연결하는 데 사용됩니다. 로컬넷 포트를 사용하여 패킷을 직접 연결된 물리적 L2 세그먼트에 브리징하여 원격 논리 포트를 연결합니다.
- 패치 포트
- 패치 포트는 논리적 스위치와 논리적 라우터 간, 그리고 피어 논리적 라우터 간의 연결을 나타냅니다. 단일 연결에는 각 연결 지점에 패치 포트 한 쌍이 있으며, 각 측면에 하나씩 있습니다.
- l3게이트웨이 포트
-
l3gateway 포트는 게이트웨이 라우터에서 사용되는 논리적 패치 포트에 대한
ovn-sbdb
의 포트 바인딩 항목입니다. 이러한 포트는 게이트웨이 라우터 자체와 마찬가지로 섀시에 바인딩되어 있다는 사실을 나타내기 위해 패치 포트가 아닌 l3gateway 포트라고 불립니다. - 로컬넷 포트
-
localnet 포트는 각
ovn-controller
인스턴스에서 로컬로 접근 가능한 네트워크에 연결할 수 있도록 하는 브리지 논리 스위치에 있습니다. 이는 논리적 스위치에서 물리적 네트워크로의 직접 연결을 모델링하는 데 도움이 됩니다. 논리적 스위치에는 하나의 로컬넷 포트만 연결할 수 있습니다.
2.7.1. 로컬 호스트에 네트워크 도구 설치 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 클러스터 네트워크 문제를 디버깅하는 데 사용할 수 있는 도구 모음을 만들려면 로컬 호스트에 network-tools를
설치하세요.
프로세스
다음 명령을 사용하여
network-tools
저장소를 워크스테이션에 복제합니다.git clone git@github.com:openshift/network-tools.git
$ git clone git@github.com:openshift/network-tools.git
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 방금 복제한 저장소의 디렉토리로 변경하세요.
cd network-tools
$ cd network-tools
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 사용 가능한 모든 명령을 나열합니다.
./debug-scripts/network-tools -h
$ ./debug-scripts/network-tools -h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7.2. 네트워크 도구 실행 링크 복사링크가 클립보드에 복사되었습니다!
network-tools를
실행하여 논리적 스위치와 라우터에 대한 정보를 얻습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
클러스터 관리자
권한이 있는 사용자로 클러스터에 로그인했습니다. -
로컬 호스트에
네트워크 도구를
설치했습니다.
프로세스
다음 명령을 실행하여 라우터를 나열하세요.
./debug-scripts/network-tools ovn-db-run-command ovn-nbctl lr-list
$ ./debug-scripts/network-tools ovn-db-run-command ovn-nbctl lr-list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
944a7b53-7948-4ad2-a494-82b55eeccf87 (GR_ci-ln-54932yb-72292-kd676-worker-c-rzj99) 84bd4a4c-4b0b-4a47-b0cf-a2c32709fc53 (ovn_cluster_router)
944a7b53-7948-4ad2-a494-82b55eeccf87 (GR_ci-ln-54932yb-72292-kd676-worker-c-rzj99) 84bd4a4c-4b0b-4a47-b0cf-a2c32709fc53 (ovn_cluster_router)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 localnet 포트를 나열하세요.
./debug-scripts/network-tools ovn-db-run-command \ ovn-sbctl find Port_Binding type=localnet
$ ./debug-scripts/network-tools ovn-db-run-command \ ovn-sbctl find Port_Binding type=localnet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
l3gateway
포트를 나열하세요../debug-scripts/network-tools ovn-db-run-command \ ovn-sbctl find Port_Binding type=l3gateway
$ ./debug-scripts/network-tools ovn-db-run-command \ ovn-sbctl find Port_Binding type=l3gateway
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 패치 포트를 나열하세요.
./debug-scripts/network-tools ovn-db-run-command \ ovn-sbctl find Port_Binding type=patch
$ ./debug-scripts/network-tools ovn-db-run-command \ ovn-sbctl find Port_Binding type=patch
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow