8장. 네트워킹
8.1. 네트워킹 개요
OpenShift Virtualization은 사용자 정의 리소스 및 플러그인을 사용하여 고급 네트워킹 기능을 제공합니다. 가상 머신(VM)은 OpenShift Container Platform 네트워킹 및 해당 에코시스템과 통합됩니다.
단일 스택 IPv6 클러스터에서 OpenShift Virtualization을 실행할 수 없습니다.
8.1.1. OpenShift Virtualization 네트워킹 용어집
다음 용어는 OpenShift Virtualization 설명서 전체에서 사용됩니다.
- CNI(컨테이너 네트워크 인터페이스(Container Network Interface))
- 컨테이너 네트워크 연결에 중점을 둔 Cloud Native Computing Foundation 프로젝트입니다. OpenShift Virtualization에서는 CNI 플러그인을 사용하여 기본 Kubernetes 네트워킹 기능을 기반으로 빌드합니다.
- Multus
- Pod 또는 가상 머신에서 필요한 인터페이스를 사용할 수 있도록 여러 CNI가 존재할 수 있는 "메타" CNI 플러그인입니다.
- CRD(사용자 정의 리소스 정의(Custom Resource Definition))
- 사용자 정의 리소스를 정의할 수 있는 Kubernetes API 리소스 또는 CRD API 리소스를 사용하여 정의한 오브젝트입니다.
- 네트워크 연결 정의(NAD)
- Pod, 가상 머신 및 가상 머신 인스턴스를 하나 이상의 네트워크에 연결할 수 있는 Multus 프로젝트에서 도입한 CRD입니다.
- 노드 네트워크 구성 정책(NNCP)
-
nmstate 프로젝트에서 도입한 CRD로, 노드에서 요청된 네트워크 구성을 설명합니다.
NodeNetworkConfigurationPolicy
매니페스트를 클러스터에 적용하는 방식으로 인터페이스 추가 및 제거를 포함하여 노드 네트워크 구성을 업데이트합니다.
8.1.2. 기본 Pod 네트워크 사용
- 가상 머신을 기본 Pod 네트워크에 연결
- 각 VM은 기본적으로 기본 내부 포드 네트워크에 연결됩니다. VM 사양을 편집하여 네트워크 인터페이스를 추가하거나 제거할 수 있습니다.
- 가상 머신을 서비스로 노출
-
Service
오브젝트를 생성하여 클러스터 또는 클러스터 외부에 VM을 노출할 수 있습니다. 온프레미스 클러스터의 경우 MetalLB Operator를 사용하여 로드 밸런싱 서비스를 구성할 수 있습니다. OpenShift Container Platform 웹 콘솔 또는 CLI를 사용하여 MetalLB Operator를 설치할 수 있습니다.
8.1.3. VM 보조 네트워크 인터페이스 구성
- 가상 머신을 Linux 브리지 네트워크에 연결
Kubernetes NMState Operator를 설치하여 보조 네트워크에 대한 Linux 브리지, VLAN 및 본딩을 구성합니다.
다음 단계를 수행하여 Linux 브리지 네트워크를 생성하고 VM을 네트워크에 연결할 수 있습니다.
-
NodeNetworkConfigurationPolicy
CRD(사용자 정의 리소스 정의)를 생성하여 Linux 브리지 네트워크 장치를 구성합니다. -
NetworkAttachmentDefinition
CRD를 생성하여 Linux 브리지 네트워크를 구성합니다. - VM 구성에 네트워크 세부 정보를 포함하여 VM을 Linux 브리지 네트워크에 연결합니다.
-
- SR-IOV 네트워크에 가상 머신 연결
높은 대역폭 또는 짧은 대기 시간이 필요한 애플리케이션에 대해 베어 메탈 또는 RHOSP(Red Hat OpenStack Platform) 인프라에 설치된 OpenShift Container Platform 클러스터의 추가 네트워크와 함께 SR-IOV(Single Root I/O Virtualization) 네트워크 장치를 사용할 수 있습니다.
SR-IOV 네트워크 장치 및 네트워크 연결을 관리하려면 클러스터에 SR-IOV Network Operator를 설치해야 합니다.
다음 단계를 수행하여 VM을 SR-IOV 네트워크에 연결할 수 있습니다.
-
SriovNetworkNodePolicy
CRD 를 생성하여 SR-IOV 네트워크 장치를 구성합니다. -
SriovNetwork
오브젝트 를 생성하여 SR-IOV 네트워크를 구성합니다. - VM 구성에 네트워크 세부 정보를 포함하여 VM을 SR-IOV 네트워크에 연결합니다.
-
- 가상 머신을 OVN-Kubernetes 보조 네트워크에 연결
VM을 OVN(Open Virtual Network)-Kubernetes 보조 네트워크에 연결할 수 있습니다. OpenShift Virtualization은 OVN-Kubernetes의 계층 2 및 localnet 토폴로지를 지원합니다.
- 계층 2 토폴로지는 클러스터 전체 논리 스위치로 워크로드를 연결합니다. OVN-Kubernetes CNI(Container Network Network Interface) 플러그인은 Geneve(Generic Network Virtualization Encapsulation) 프로토콜을 사용하여 노드 간에 오버레이 네트워크를 생성합니다. 이 오버레이 네트워크를 사용하여 추가 물리적 네트워킹 인프라를 구성하지 않고도 다른 노드의 VM을 연결할 수 있습니다.
- localnet 토폴로지는 보조 네트워크를 물리적 오버레이에 연결합니다. 이렇게 하면 east-west 클러스터 트래픽과 클러스터 외부에서 실행되는 서비스에 대한 액세스를 모두 사용할 수 있지만 클러스터 노드에서 기본 OVS(Open vSwitch) 시스템에 대한 추가 구성이 필요합니다.
OVN-Kubernetes 보조 네트워크를 구성하고 VM을 해당 네트워크에 연결하려면 다음 단계를 수행합니다.
네트워크 연결 정의(NAD)를 생성하여 OVN-Kubernetes 보조 네트워크를 구성합니다.
참고localnet 토폴로지의 경우 CryostatD를 생성하기 전에
NodeNetworkConfigurationPolicy
오브젝트를 생성하여 OVS 브리지를 구성해야 합니다.- VM 사양에 네트워크 세부 정보를 추가하여 VM을 OVN-Kubernetes 보조 네트워크에 연결합니다.
- 보조 네트워크 인터페이스 핫플러그
- VM을 중지하지 않고 보조 네트워크 인터페이스를 추가하거나 제거할 수 있습니다. OpenShift Virtualization은 VirtIO 장치 드라이버를 사용하는 Linux 브리지 인터페이스에 대한 핫 플러그 및 핫 플러그를 지원합니다.
- SR-IOV와 함께 DPDK 사용
- DPDK(Data Plane Development Kit)는 빠른 패킷 처리를 위한 라이브러리 및 드라이버 세트를 제공합니다. SR-IOV 네트워크에서 DPDK 워크로드를 실행하도록 클러스터 및 VM을 구성할 수 있습니다.
- 실시간 마이그레이션을 위한 전용 네트워크 구성
- 실시간 마이그레이션을 위해 전용 Multus 네트워크를 구성할 수 있습니다. 전용 네트워크는 실시간 마이그레이션 중에 테넌트 워크로드에 대한 네트워크 포화 상태로 인한 영향을 최소화합니다.
- 클러스터 FQDN을 사용하여 가상 머신에 액세스
- FQDN(정규화된 도메인 이름)을 사용하여 클러스터 외부에서 보조 네트워크 인터페이스에 연결된 VM에 액세스할 수 있습니다.
- IP 주소 구성 및 보기
- VM을 생성할 때 보조 네트워크 인터페이스의 IP 주소를 구성할 수 있습니다. IP 주소는 cloud-init를 사용하여 프로비저닝됩니다. OpenShift Container Platform 웹 콘솔 또는 명령줄을 사용하여 VM의 IP 주소를 볼 수 있습니다. 네트워크 정보는 QEMU 게스트 에이전트에 의해 수집됩니다.
8.1.4. OpenShift Service Mesh와 통합
- 서비스 메시에 가상 머신 연결
- OpenShift Virtualization은 OpenShift Service Mesh와 통합됩니다. Pod와 가상 머신 간의 트래픽을 모니터링, 시각화 및 제어할 수 있습니다.
8.1.5. MAC 주소 풀 관리
- 네트워크 인터페이스의 MAC 주소 풀 관리
- KubeMacPool 구성 요소는 공유 MAC 주소 풀의 VM 네트워크 인터페이스에 MAC 주소를 할당합니다. 이렇게 하면 각 네트워크 인터페이스에 고유한 MAC 주소가 할당됩니다. 해당 VM에서 생성된 가상 머신 인스턴스는 재부팅 시 할당된 MAC 주소를 유지합니다.
8.1.6. SSH 액세스 구성
- 가상 머신에 대한 SSH 액세스 구성
다음 방법을 사용하여 VM에 대한 SSH 액세스를 구성할 수 있습니다.
SSH 키 쌍을 생성하고 VM에 공개 키를 추가하고 개인 키로
virtctl ssh
명령을 실행하여 VM에 연결합니다.런타임 시 RHEL(Red Hat Enterprise Linux) 9 VM에 공개 SSH 키를 추가하거나 먼저 cloud-init 데이터 소스를 사용하여 구성할 수 있는 게스트 운영 체제를 사용하여 VM에 부팅할 수 있습니다.
virtctl port-foward
명령을.ssh/config
파일에 추가하고 OpenSSH를 사용하여 VM에 연결합니다.서비스를 생성하고 서비스를 VM과 연결하고 서비스에서 노출하는 IP 주소 및 포트에 연결합니다.
보조 네트워크를 구성하고 VM을 보조 네트워크 인터페이스에 연결한 다음 할당된 IP 주소에 연결합니다.