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 주소 수를 줄입니다.
- 패치 포트가 있는 논리 스위치
- 패치 포트가 있는 논리 스위치는 네트워크 스택을 가상화하는 데 사용됩니다. 터널을 통해 원격 논리 포트를 연결합니다.
- localnet 포트가 있는 논리 스위치
- localnet 포트가 있는 논리 스위치는 OVN을 물리적 네트워크에 연결하는 데 사용됩니다. 로컬 네트워크 포트를 사용하여 직접 연결된 물리적 L2 세그먼트에 패킷을 브리징하여 원격 논리 포트를 연결합니다.
- 패치 포트
- 패치 포트는 논리 스위치와 논리 라우터와 피어 논리 라우터 간의 연결을 나타냅니다. 단일 연결에는 각 측면에서 하나씩 이러한 연결 지점에 패치 포트가 한 쌍이 있습니다.
- l3gateway 포트
-
l3gateway 포트는 게이트웨이 라우터에 사용되는 논리 패치 포트용
ovn-sbdb
의 포트 바인딩 항목입니다. 이러한 포트는 게이트웨이 라우터 자체와 마찬가지로 이러한 포트가 섀시에 바인딩된다는 사실을 패치 포트 대신 l3gateway 포트라고 합니다. - localnet 포트
-
각
ovn-controller
인스턴스에서 로컬 액세스 네트워크에 연결할 수 있는 브리지된 논리 스위치에 localnet 포트가 있습니다. 이를 통해 논리 스위치에서 물리적 네트워크에 대한 직접 연결을 모델링할 수 있습니다. 논리 스위치에는 단일 localnet 포트만 연결할 수 있습니다.
2.7.1. 로컬 호스트에 network-tools 설치 링크 복사링크가 클립보드에 복사되었습니다!
로컬 호스트에 network-tools
를 설치하여 OpenShift Container Platform 클러스터 네트워크 문제를 디버깅하는 데 필요한 툴 컬렉션을 사용할 수 있도록 합니다.
프로세스
다음 명령을 사용하여
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 실행 링크 복사링크가 클립보드에 복사되었습니다!
network-tools
를 실행하여 논리 스위치 및 라우터에 대한 정보를 가져옵니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 클러스터에 로그인합니다. -
로컬 호스트에
network-tools
를 설치했습니다.
프로세스
다음 명령을 실행하여 라우터를 나열합니다.
./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