8.7. 가상 머신을 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로의 트래픽 흐름을 제어하기 위해 MultiNetworkPolicy
CRD(사용자 정의 리소스 정의)를 제공하는 다중 네트워크 정책 API 와 호환됩니다. ipBlock
속성을 사용하여 특정 CIDR 블록에 대한 네트워크 정책 수신 및 송신 규칙을 정의할 수 있습니다.
OVN-Kubernetes 보조 네트워크를 구성하고 VM을 해당 네트워크에 연결하려면 다음 단계를 수행합니다.
네트워크 연결 정의(NAD)를 생성하여 OVN-Kubernetes 보조 네트워크를 구성합니다.
참고localnet 토폴로지의 경우 CryostatD를 생성하기 전에
NodeNetworkConfigurationPolicy
오브젝트를 생성하여 OVS 브리지를 구성해야 합니다.- VM 사양에 네트워크 세부 정보를 추가하여 VM을 OVN-Kubernetes 보조 네트워크에 연결합니다.
8.7.1. OVN-Kubernetes CryostatD 생성
OpenShift Container Platform 웹 콘솔 또는 CLI를 사용하여 OVN-Kubernetes 계층 2 또는 localnet 네트워크 연결 정의(NAD)를 생성할 수 있습니다.
가상 머신의 네트워크 연결 정의에서 IP 주소 관리(IPAM) 구성은 지원되지 않습니다.
8.7.1.1. CLI를 사용하여 계층 2 토폴로지용 CryostatD 생성
포드를 계층 2 오버레이 네트워크에 연결하는 방법을 설명하는 네트워크 연결 정의(NAD)를 생성할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
NetworkAttachmentDefinition
오브젝트를 생성합니다.apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: l2-network namespace: my-namespace spec: config: |2 { "cniVersion": "0.3.1", 1 "name": "my-namespace-l2-network", 2 "type": "ovn-k8s-cni-overlay", 3 "topology":"layer2", 4 "mtu": 1300, 5 "netAttachDefName": "my-namespace/l2-network" 6 }
- 1
- CNI 사양 버전입니다. 필수 값은
0.3.1
입니다. - 2
- 네트워크의 이름입니다. 이 속성은 네임스페이스가 지정되지 않습니다. 예를 들어 두 개의 다른 네임스페이스에 존재하는 두 개의 다른
NetworkAttachmentDefinition
오브젝트에서 참조되는l2-network
라는 네트워크가 있을 수 있습니다. 이 기능은 다른 네임스페이스의 VM을 연결하는 데 유용합니다. - 3
- 구성할 CNI 플러그인의 이름입니다. 필수 값은
ovn-k8s-cni-overlay
입니다. - 4
- 네트워크의 토폴로지 구성입니다. 필요한 값은
layer2
입니다. - 5
- 선택 사항: MTU(최대 전송 단위) 값입니다. 기본값은 커널에 의해 자동으로 설정됩니다.
- 6
NetworkAttachmentDefinition
오브젝트의metadata
스탠자에 있는namespace
및name
필드의 값입니다.
참고위의 예제에서는 서브넷이 정의되지 않은 클러스터 전체 오버레이를 구성합니다. 즉, 네트워크를 구현하는 논리 스위치는 계층 2 통신만 제공합니다. 고정 IP 주소를 설정하거나 동적 IP 주소에 대해 네트워크에 DHCP 서버를 배포하여 가상 머신을 생성할 때 IP 주소를 구성해야 합니다.
매니페스트를 적용합니다.
$ oc apply -f <filename>.yaml
8.7.1.2. CLI를 사용하여 localnet 토폴로지용 CryostatD 생성
기본 물리적 네트워크에 Pod를 연결하는 방법을 설명하는 네트워크 연결 정의(NAD)를 생성할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다. - Kubernetes NMState Operator가 설치되어 있습니다.
-
OVN-Kubernetes 보조 네트워크를 OVS(Open vSwitch) 브리지에 매핑하는
NodeNetworkConfigurationPolicy
오브젝트를 생성했습니다.
프로세스
NetworkAttachmentDefinition
오브젝트를 생성합니다.apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: localnet-network namespace: default spec: config: |2 { "cniVersion": "0.3.1", 1 "name": "localnet-network", 2 "type": "ovn-k8s-cni-overlay", 3 "topology": "localnet", 4 "netAttachDefName": "default/localnet-network" 5 }
- 1
- CNI 사양 버전입니다. 필수 값은
0.3.1
입니다. - 2
- 네트워크의 이름입니다. 이 속성은 OVS 브리지 매핑을 정의하는
NodeNetworkConfigurationPolicy
오브젝트의spec.desiredState.ovn.bridge-mappings.localnet
필드의 값과 일치해야 합니다. - 3
- 구성할 CNI 플러그인의 이름입니다. 필수 값은
ovn-k8s-cni-overlay
입니다. - 4
- 네트워크의 토폴로지 구성입니다. 필요한 값은
localnet
입니다. - 5
NetworkAttachmentDefinition
오브젝트의metadata
스탠자에 있는namespace
및name
필드의 값입니다.
매니페스트를 적용합니다.
$ oc apply -f <filename>.yaml
8.7.1.3. 웹 콘솔을 사용하여 계층 2 토폴로지용 CryostatD 생성
포드를 계층 2 오버레이 네트워크에 연결하는 방법을 설명하는 네트워크 연결 정의(NAD)를 생성할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.
프로세스
-
웹 콘솔에서 네트워킹
NetworkAttachmentDefinitions 로 이동합니다. - 네트워크 연결 정의 생성 을 클릭합니다. 네트워크 연결 정의는 이를 사용하는 Pod 또는 가상 머신과 동일한 네임스페이스에 있어야 합니다.
- 고유한 이름과 선택적 설명을 입력합니다.
- 네트워크 유형 목록에서 OVN Kubernetes L2 오버레이 네트워크를 선택합니다.
- 생성을 클릭합니다.
8.7.1.4. 웹 콘솔을 사용하여 localnet 토폴로지용 CryostatD 생성
OpenShift Container Platform 웹 콘솔을 사용하여 워크로드를 물리적 네트워크에 연결하는 네트워크 연결 정의(NAD)를 생성할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 클러스터에 액세스할 수 있습니다. -
nmstate
를 사용하여 localnet을 OVS 브리지 매핑으로 구성합니다.
프로세스
-
웹 콘솔에서 네트워킹
NetworkAttachmentDefinitions 로 이동합니다. - 네트워크 연결 정의 생성 을 클릭합니다. 네트워크 연결 정의는 이를 사용하는 Pod 또는 가상 머신과 동일한 네임스페이스에 있어야 합니다.
- 고유한 이름과 선택적 설명을 입력합니다.
- 네트워크 유형 목록에서 OVN Kubernetes 보조 localnet 네트워크를 선택합니다.
- 브리지 매핑 필드에 사전 구성된 localnet 식별자의 이름을 입력합니다.
- 선택 사항: MTU를 지정된 값으로 명시적으로 설정할 수 있습니다. 커널에서 기본값을 선택합니다.
- 선택 사항: VLAN에 트래픽을 캡슐화합니다. 기본값은 None입니다.
- 생성을 클릭합니다.
8.7.2. OVN-Kubernetes 보조 네트워크에 가상 머신 연결
OpenShift Container Platform 웹 콘솔 또는 CLI를 사용하여 VM(가상 머신)을 OVN-Kubernetes 보조 네트워크 인터페이스에 연결할 수 있습니다.
8.7.2.1. CLI를 사용하여 OVN-Kubernetes 보조 네트워크에 가상 머신 연결
VM 구성에 네트워크 세부 정보를 포함하여 VM(가상 머신)을 OVN-Kubernetes 보조 네트워크에 연결할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
다음 예와 같이
VirtualMachine
매니페스트를 편집하여 OVN-Kubernetes 보조 네트워크 인터페이스 세부 정보를 추가합니다.apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: vm-server spec: running: true template: spec: domain: devices: interfaces: - name: secondary 1 bridge: {} resources: requests: memory: 1024Mi networks: - name: secondary 2 multus: networkName: <nad_name> 3 # ...
VirtualMachine
매니페스트를 적용합니다.$ oc apply -f <filename>.yaml
- 선택 사항: 실행 중인 가상 머신을 편집한 경우 변경 사항을 적용하려면 가상 머신을 다시 시작해야 합니다.