9장. OVN-Kubernetes 네트워크 플러그인
9.1. OVN-Kubernetes 네트워크 플러그인 정보
AWS 클러스터의 Red Hat OpenShift Service는 Pod 및 서비스 네트워크에 가상화된 네트워크를 사용합니다.
Red Hat OpenShift Networking의 일부인 OVN-Kubernetes 네트워크 플러그인은 AWS에서 Red Hat OpenShift Service의 기본 네트워크 공급자입니다. OVN-Kubernetes는 OVN(Open Virtual Network)을 기반으로 하며 오버레이 기반 네트워킹 구현을 제공합니다. OVN-Kubernetes 플러그인을 사용하는 클러스터는 각 노드에서 OVS(Open vSwitch)도 실행합니다. OVN은 각 노드에서 선언된 네트워크 구성을 구현하도록 OVS를 구성합니다.
OVN-Kubernetes는 AWS 및 단일 노드 OpenShift 배포에서 Red Hat OpenShift Service의 기본 네트워킹 솔루션입니다.
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 암호화, IPv6, 네트워크 정책, 네트워크 정책 로그, 하드웨어 오프로드 및 멀티 캐스트와 같은 네트워크 공급자 기능을 지원합니다.
9.1.1. OVN-Kubernetes 용도
OVN-Kubernetes 네트워크 플러그인은 OVN(Open Virtual Network)을 사용하여 네트워크 트래픽 흐름을 관리하는 오픈 소스 완전한 기능을 갖춘 Kubernetes CNI 플러그인입니다. OVN은 커뮤니티에서 개발한 벤더와 무관한 네트워크 가상화 솔루션입니다. OVN-Kubernetes 네트워크 플러그인은 다음 기술을 사용합니다.
- OVN을 사용하여 네트워크 트래픽 흐름을 관리합니다.
- 수신 및 송신 규칙을 포함한 Kubernetes 네트워크 정책 지원 및 로그.
- VXLAN(Virtual Extensible LAN)이 아닌 일반 네트워크 가상화 캡슐화(Geneve) 프로토콜을 사용하여 노드 간에 오버레이 네트워크를 생성합니다.
OVN-Kubernetes 네트워크 플러그인은 다음 기능을 지원합니다.
- Linux 및 Microsoft Windows 워크로드를 모두 실행할 수 있는 하이브리드 클러스터입니다. 이 환경을 하이브리드 네트워킹 이라고 합니다.
- 호스트 CPU(중앙 처리 장치)에서 호환 가능한 네트워크 카드 및 DPDK(데이터 처리 장치)로 네트워크 데이터 처리 오프로드. 이를 하드웨어 오프로드 라고 합니다.
- 베어 메탈, VMware vSphere, IBM Power®, IBM Z® 및 RHOSP 플랫폼에서 IPv4-primary 듀얼 스택 네트워킹.
- 베어 메탈 플랫폼의 IPv6 단일 스택 네트워킹.
- 베어 메탈, VMware vSphere 또는 RHOSP 플랫폼에서 실행되는 클러스터의 IPv6-primary 듀얼 스택 네트워킹.
- 송신 방화벽 장치 및 송신 IP 주소입니다.
- 리디렉션 모드에서 작동하는 송신 라우터 장치입니다.
- 클러스터 내 통신의 IPsec 암호화
9.1.2. 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
유일한 해결 방법은 두 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
유일한 해결 방법은 두 IP 제품군에 기본 게이트웨이가 포함되도록 호스트 네트워킹을 재구성하는 것입니다.
9.1.3. 세션 선호도
세션 선호도는 Kubernetes Service
오브젝트에 적용되는 기능입니다. <service_VIP>:<Port>에 연결할 때마다 트래픽이 항상 동일한 백엔드에 분산되도록 하려면 세션 선호도를 사용할 수 있습니다. 클라이언트의 IP 주소를 기반으로 세션 선호도를 설정하는 방법을 포함한 자세한 내용은 세션 선호도를 참조하십시오.
세션 선호도에 대한 고정 시간 제한
AWS에서 Red Hat OpenShift Service의 OVN-Kubernetes 네트워크 플러그인은 마지막 패킷을 기반으로 클라이언트에서 세션의 고정 시간 초과를 계산합니다. 예를 들어 curl
명령을 10번 실행하면 고정 세션 타이머가 첫 번째 패킷이 아닌 10번째 패킷에서 시작됩니다. 결과적으로 클라이언트가 지속적으로 서비스에 문의하는 경우 세션이 시간 초과되지 않습니다. 서비스가 timeoutSeconds
매개변수에 설정된 시간 양에 대한 패킷을 수신하지 않으면 시간 초과가 시작됩니다.