19장. OVN-Kubernetes 네트워크 플러그인
19.1. OVN-Kubernetes 네트워크 플러그인 정보 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 클러스터는 pod 및 service 네트워크에 가상화된 네트워크를 사용합니다.
Red Hat OpenShift Networking의 일부인 OVN-Kubernetes 네트워크 플러그인은 OpenShift Container Platform의 기본 네트워크 공급자입니다. OVN-Kubernetes는 OVN(Open Virtual Network)을 기반으로 하며 오버레이 기반 네트워킹 구현을 제공합니다. OVN-Kubernetes 플러그인을 사용하는 클러스터는 각 노드에서 OVS(Open vSwitch)도 실행합니다. OVN은 각 노드에서 선언된 네트워크 구성을 구현하도록 OVS를 구성합니다.
OVN-Kubernetes는 OpenShift Container Platform 및 단일 노드 OpenShift 배포를 위한 기본 네트워킹 솔루션입니다.
OVS 프로젝트에서 발생한 OVN-Kubernetes는 공개 흐름 규칙과 같은 많은 동일한 구성을 사용하여 네트워크를 통해 패킷을 이동하는 방법을 결정합니다. 자세한 내용은 Open Virtual Network 웹 사이트를 참조하십시오.
OVN-Kubernetes는 가상 네트워크 구성을 OpenFlow
규칙으로 변환하는 OVS의 일련의 데몬입니다. OpenFlow
는 네트워크 스위치 및 라우터와 통신하기 위한 프로토콜로, 네트워크 장치에서 네트워크 트래픽의 흐름을 원격으로 제어하는 수단을 제공합니다. 즉, 네트워크 관리자는 네트워크 트래픽의 흐름을 구성, 관리 및 조사할 수 있습니다.
OVN-Kubernetes는 OpenFlow
에서 사용할 수 없는 고급 기능을 더 많이 제공합니다. OVN은 분산 가상 라우팅, 분산 논리 스위치, 액세스 제어, DHCP(Dynamic Host Configuration Protocol) 및 DNS를 지원합니다. OVN은 흐름을 여는 논리 흐름 내에서 분산 가상 라우팅을 구현합니다. 예를 들어 네트워크의 DHCP 요청을 네트워크의 DHCP 서버로 보내는 Pod가 있는 경우 요청의 논리 흐름 규칙은 OVN-Kubernetes가 패킷을 처리하는 데 도움이 됩니다. 즉, 서버는 게이트웨이, DNS 서버, IP 주소 및 기타 정보로 응답할 수 있습니다.
OVN-Kubernetes는 각 노드에서 데몬을 실행합니다. 데이터베이스와 모든 노드에서 실행되는 OVN 컨트롤러에 대한 데몬 세트가 있습니다. OVN 컨트롤러는 다음 네트워크 공급자 기능을 지원하기 위해 노드에서 Open vSwitch 데몬을 프로그래밍합니다.
- 송신 IP
- 방화벽
- 하드웨어 오프로드
- 하이브리드 네트워킹
- IPsec(Internet Protocol Security) 암호화
- IPv6
- 멀티 캐스트.
- 네트워크 정책 및 네트워크 정책 로그
- 라우터
19.1.1. OVN-Kubernetes 용도 링크 복사링크가 클립보드에 복사되었습니다!
OVN-Kubernetes 네트워크 플러그인은 OVN(Open Virtual Network)을 사용하여 네트워크 트래픽 흐름을 관리하는 오픈 소스 완전한 기능을 갖춘 Kubernetes CNI 플러그인입니다. OVN은 커뮤니티에서 개발한 벤더와 무관한 네트워크 가상화 솔루션입니다. OVN-Kubernetes 네트워크 플러그인
- OVN(Open Virtual Network)을 사용하여 네트워크 트래픽 흐름을 관리합니다. OVN은 커뮤니티에서 개발한 벤더와 무관한 네트워크 가상화 솔루션입니다.
- 수신 및 송신 규칙을 포함한 Kubernetes 네트워크 정책 지원을 구현합니다.
- VXLAN 대신 Geneve(Generic Network Virtualization Encapsulation) 프로토콜을 사용하여 노드 간에 오버레이 네트워크를 만듭니다.
OVN-Kubernetes 네트워크 플러그인은 OpenShift SDN에 비해 다음과 같은 이점을 제공합니다.
- 지원되는 플랫폼에서 IPv6 단일 스택 및 IPv4/IPv6 듀얼 스택 네트워킹에 대한 전체 지원
- Linux 및 Microsoft Windows 워크로드를 모두 사용하여 하이브리드 클러스터 지원
- 클러스터 내부 통신의 선택적 IPsec 암호화
- 호스트 CPU에서 호환 가능한 네트워크 카드 및 DPDK(데이터 처리 장치)로 네트워크 데이터 처리 오프로드
19.1.2. 지원되는 네트워크 플러그인 기능 매트릭스 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Networking은 네트워크 플러그인에 대한 두 가지 옵션인 OpenShift SDN 및 OVN-Kubernetes를 제공합니다. 다음 표에는 두 네트워크 플러그인 모두에 대한 현재 기능 지원이 요약되어 있습니다.
기능 | OpenShift SDN | OVN-Kubernetes |
---|---|---|
송신 IP | 지원됨 | 지원됨 |
송신 방화벽 | 지원됨 | 지원됨 [1] |
송신 라우터 | 지원됨 | 지원됨 [2] |
하이브리드 네트워킹 | 지원되지 않음 | 지원됨 |
클러스터 내부 통신을 위한 IPsec 암호화 | 지원되지 않음 | 지원됨 |
IPv4 단일 스택 | 지원됨 | 지원됨 |
IPv6 단일 스택 | 지원되지 않음 | 지원됨 [3] |
IPv4/IPv6 듀얼 스택 | 지원되지 않음 | 지원됨 [4] |
IPv6/IPv4 듀얼 스택 | 지원되지 않음 | 지원됨 [5] |
Kubernetes 네트워크 정책 | 지원됨 | 지원됨 |
Kubernetes 네트워크 정책 로그 | 지원되지 않음 | 지원됨 |
하드웨어 오프로드 | 지원되지 않음 | 지원됨 |
멀티 캐스트 | 지원됨 | 지원됨 |
- 송신 방화벽은 OpenShift SDN에서 송신 네트워크 정책이라고도 합니다. 이것은 네트워크 정책 송신과 동일하지 않습니다.
- OVN-Kubernetes용 송신 라우터는 리디렉션 모드만 지원합니다.
- 베어 메탈 플랫폼의 IPv6 단일 스택 네트워킹.
- 베어 메탈, VMware vSphere(installer 프로비저닝 인프라 설치 전용), IBM Power®, IBM Z® 및 RHOSP 플랫폼의 IPv4/IPv6 듀얼 스택 네트워킹.
- 베어 메탈, VMware vSphere(installer 프로비저닝 인프라 설치 전용) 및 IBM Power® 플랫폼의 IPv6/IPv4 듀얼 스택 네트워킹.
19.1.3. OVN-Kubernetes IPv6 및 듀얼 스택 제한 사항 링크 복사링크가 클립보드에 복사되었습니다!
OVN-Kubernetes 네트워크 플러그인에는 다음과 같은 제한 사항이 있습니다.
듀얼 스택 네트워킹을 위해 구성된 클러스터의 경우 IPv4 및 IPv6 트래픽 모두 기본 게이트웨이와 동일한 네트워크 인터페이스를 사용해야 합니다.
이 요구 사항이 충족되지 않으면
ovnkube-node
데몬 세트의 호스트의 Pod가CrashLoopBackOff
상태가 됩니다.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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 유일한 해결 방법은 두 IP 제품군이 기본 게이트웨이에 동일한 네트워크 인터페이스를 사용하도록 호스트 네트워킹을 재구성하는 것입니다.
듀얼 스택 네트워킹을 위해 구성된 클러스터의 경우 IPv4 및 IPv6 라우팅 테이블 모두 기본 게이트웨이를 포함해야 합니다.
이 요구 사항이 충족되지 않으면
ovnkube-node
데몬 세트의 호스트의 Pod가CrashLoopBackOff
상태가 됩니다.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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 유일한 해결 방법은 두 IP 제품군에 기본 게이트웨이가 포함되도록 호스트 네트워킹을 재구성하는 것입니다.
-
MachineConfig
CR(사용자 정의 리소스)의kernelArgument
섹션에서ipv6.disable
매개변수를1
로 설정하면 OVN-Kubernetes Pod가CrashLoopBackOff
상태가 됩니다. 또한 Network Operator가Degraded
상태로 유지되므로 클러스터를 최신 버전의 OpenShift Container Platform으로 업데이트할 수 없습니다. Red Hat은 클러스터의 IPv6 adddresses 비활성화를 지원하지 않으므로ipv6.disable
매개변수를1
로 설정하지 마십시오.
19.1.4. 세션 선호도 링크 복사링크가 클립보드에 복사되었습니다!
세션 선호도는 Kubernetes Service
오브젝트에 적용되는 기능입니다. <service_VIP>:<Port>에 연결할 때마다 트래픽이 항상 동일한 백엔드에 분산되도록 하려면 세션 선호도를 사용할 수 있습니다. 클라이언트의 IP 주소를 기반으로 세션 선호도를 설정하는 방법을 포함한 자세한 내용은 세션 선호도를 참조하십시오.
19.1.4.1. 세션 선호도에 대한 고정 시간 제한 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform의 OVN-Kubernetes 네트워크 플러그인은 마지막 패킷을 기반으로 클라이언트에서 세션의 고정 시간 초과를 계산합니다. 예를 들어 curl
명령을 10번 실행하면 고정 세션 타이머가 첫 번째 패킷이 아닌 10번째 패킷에서 시작됩니다. 결과적으로 클라이언트가 지속적으로 서비스에 문의하는 경우 세션이 시간 초과되지 않습니다. 서비스가 timeoutSeconds
매개변수에 설정된 시간 양에 대한 패킷을 수신하지 않으면 시간 초과가 시작됩니다.