16장. OVN-Kubernetes 기본 CNI 네트워크 공급자
16.1. OVN-Kubernetes 기본 CNI(Container Network Interface) 네트워크 공급자 정보
OpenShift Container Platform 클러스터는 pod 및 service 네트워크에 가상화된 네트워크를 사용합니다. OVN-Kubernetes CNI(Container Network Interface) 플러그인은 기본 클러스터 네트워크의 네트워크 공급자입니다. OVN-Kubernetes는 OVN(Open Virtual Network)을 기반으로 하며 오버레이 기반 네트워킹 구현을 제공합니다. OVN-Kubernetes 네트워크 공급자를 사용하는 클러스터도 각 노드에서 OVS(Open vSwitch)를 실행합니다. OVN은 각 노드에서 선언된 네트워크 구성을 구현하도록 OVS를 구성합니다.
16.1.1. OVN-Kubernetes 기능
OVN-Kubernetes CNI(Container Network Interface) 클러스터 네트워크 공급자는 다음 기능을 구현합니다.
- OVN(Open Virtual Network)을 사용하여 네트워크 트래픽 흐름을 관리합니다. OVN은 커뮤니티에서 개발한 벤더와 무관한 네트워크 가상화 솔루션입니다.
- 수신 및 송신 규칙을 포함한 Kubernetes 네트워크 정책 지원을 구현합니다.
- VXLAN 대신 Geneve(Generic Network Virtualization Encapsulation) 프로토콜을 사용하여 노드 간에 오버레이 네트워크를 만듭니다.
16.1.2. 지원되는 기본 CNI 네트워크 공급자 기능 매트릭스
OpenShift Container Platform은 기본 CNI(Container Network Interface) 네트워크 공급자를 위해 OpenShift SDN 및 OVN-Kubernetes의 두 가지 지원 옵션을 제공합니다. 다음 표는 두 네트워크 공급자 모두에 대한 현재 기능 지원을 요약합니다.
기능 | OVN-Kubernetes | OpenShift SDN |
---|---|---|
송신 IP | 지원됨 | 지원됨 |
송신 방화벽 [1] | 지원됨 | 지원됨 |
송신 라우터 | 지원됨 [2] | 지원됨 |
IPsec 암호화 | 지원됨 | 지원되지 않음 |
IPv6 | 지원됨 [3] | 지원되지 않음 |
Kubernetes 네트워크 정책 | 지원됨 | 부분적으로 지원됨 [4] |
Kubernetes 네트워크 정책 로그 | 지원됨 | 지원되지 않음 |
멀티 캐스트 | 지원됨 | 지원됨 |
- 송신 방화벽은 OpenShift SDN에서 송신 네트워크 정책이라고도 합니다. 이것은 네트워크 정책 송신과 동일하지 않습니다.
- OVN-Kubernetes용 송신 라우터는 리디렉션 모드만 지원합니다.
- IPv6는 베어 메탈 클러스터에서만 지원됩니다.
-
OpenShift SDN의 네트워크 정책은 송신 규칙 및 일부
ipBlock
규칙을 지원하지 않습니다.
16.1.3. OVN-Kubernetes 제한 사항
OVN-Kubernetes CNI(Container Network Interface) 클러스터 네트워크 공급자에는 다음과 같은 제한 사항이 있습니다.
-
OVN-Kubernetes는 Kubernetes 서비스의 외부 트래픽 정책 또는 내부 트래픽 정책 설정을 로컬로 설정할 수 없습니다
.
두 매개변수 모두에서 기본값인cluster
가 지원됩니다. 이 제한은LoadBalancer
,NodePort
유형의 서비스를 추가하거나 외부 IP를 사용하여 서비스를 추가할 때 영향을 줄 수 있습니다. -
sessionAffinityConfig.clientIP.timeoutSeconds
서비스는 OpenShift OVN 환경에는 적용되지 않지만 OpenShift SDN 환경에서는 작동하지 않습니다. 이러한 불일치로 인해 사용자가 OpenShift SDN에서 OVN으로 마이그레이션하기가 어려울 수 있습니다.
듀얼 스택 네트워킹용으로 구성된 클러스터의 경우 IPv4 및 IPv6 트래픽 모두 기본 게이트웨이와 동일한 네트워크 인터페이스를 사용해야 합니다. 이 요구 사항이 충족되지 않으면
ovnkube-node
데몬 세트의 호스트의 Pod는 theCrashLoopBackOff
상태를 입력합니다.oc get pod -n openshift-ovn-kubernetes -l app=ovnkube-node -o yaml
과 같은 명령으로 Pod를 표시하는 경우status
필드에는 다음 출력에 표시된 대로 기본 게이트웨이에 대한 두 개 이상의 메시지가 포함됩니다.I1006 16:09:50.985852 60651 helper_linux.go:73] Found default gateway interface br-ex 192.168.127.1 I1006 16:09:50.985923 60651 helper_linux.go:73] Found default gateway interface ens4 fe80::5054:ff:febe:bcd4 F1006 16:09:50.985939 60651 ovnkube.go:130] multiple gateway interfaces detected: br-ex ens4
유일한 해결 방법은 두 IP 제품군 모두 기본 게이트웨이에 동일한 네트워크 인터페이스를 사용하도록 호스트 네트워킹을 재구성하는 것입니다.
듀얼 스택 네트워킹용으로 구성된 클러스터의 경우 IPv4 및 IPv6 라우팅 테이블에는 기본 게이트웨이가 포함되어야 합니다. 이 요구 사항이 충족되지 않으면
ovnkube-node
데몬 세트의 호스트의 Pod는 theCrashLoopBackOff
상태를 입력합니다.oc get pod -n openshift-ovn-kubernetes -l app=ovnkube-node -o yaml
과 같은 명령으로 Pod를 표시하는 경우status
필드에는 다음 출력에 표시된 대로 기본 게이트웨이에 대한 두 개 이상의 메시지가 포함됩니다.I0512 19:07:17.589083 108432 helper_linux.go:74] Found default gateway interface br-ex 192.168.123.1 F0512 19:07:17.589141 108432 ovnkube.go:133] failed to get default gateway interface
유일한 해결 방법은 두 IP 제품군에 기본 게이트웨이를 포함하도록 호스트 네트워킹을 재구성하는 것입니다.