8.4. 가상 머신을 Linux 브리지 네트워크에 연결
기본적으로 OpenShift Virtualization은 단일 내부 pod 네트워크와 함께 설치됩니다.
다음 단계를 수행하여 Linux 브리지 네트워크를 생성하고 VM(가상 머신)을 네트워크에 연결할 수 있습니다.
- Linux 브리지 노드 네트워크 구성 정책(NNCP)을 생성합니다.
- 웹 콘솔 또는 명령줄 을 사용하여 Linux 브리지 네트워크 연결 정의(NAD)를 생성합니다.
- 웹 콘솔 또는 명령줄 을 사용하여 CryostatD를 인식하도록 VM을 구성합니다.
8.4.1. Linux 브리지 NNCP 생성
Linux 브리지 네트워크에 대한 NodeNetworkConfigurationPolicy
(NNCP) 매니페스트를 생성할 수 있습니다.
사전 요구 사항
- Kubernetes NMState Operator가 설치되어 있습니다.
프로세스
NodeNetworkConfigurationPolicy
매니페스트를 생성합니다. 이 예제에는 고유한 정보로 교체해야 하는 샘플 값이 포함되어 있습니다.apiVersion: nmstate.io/v1 kind: NodeNetworkConfigurationPolicy metadata: name: br1-eth1-policy 1 spec: desiredState: interfaces: - name: br1 2 description: Linux bridge with eth1 as a port 3 type: linux-bridge 4 state: up 5 ipv4: enabled: false 6 bridge: options: stp: enabled: false 7 port: - name: eth1 8
8.4.2. Linux 브리지 생성
OpenShift Container Platform 웹 콘솔 또는 명령줄을 사용하여 Linux 브리지 네트워크 연결 정의(NAD)를 생성할 수 있습니다.
8.4.2.1. 웹 콘솔을 사용하여 Linux 브리지 생성
OpenShift Container Platform 웹 콘솔을 사용하여 네트워크 연결 정의(NAD)를 생성하여 Pod 및 가상 머신에 계층 2 네트워킹을 제공할 수 있습니다.
Linux 브리지 네트워크 연결 정의는 가상 머신을 VLAN에 연결하는 가장 효율적인 방법입니다.
가상 머신의 네트워크 연결 정의에서 IP 주소 관리(IPAM) 구성은 지원되지 않습니다.
프로세스
-
웹 콘솔에서 네트워킹
NetworkAttachmentDefinitions 를 클릭합니다. 네트워크 연결 정의 생성 을 클릭합니다.
참고네트워크 연결 정의는 Pod 또는 가상 머신과 동일한 네임스페이스에 있어야 합니다.
- 고유한 이름과 선택적 설명을 입력합니다.
- 네트워크 유형 목록에서 CNV Linux 브리지 를 선택합니다.
- 브리지 이름 필드에 브리지 이름을 입력합니다.
- 선택 사항: 리소스에 VLAN ID가 구성된 경우 VLAN 태그 번호 필드에 ID 번호를 입력합니다.
- 선택 사항: MAC 스푸핑 검사를 선택하여 MAC 스푸핑 필터링을 활성화합니다. 이 기능은 단일 MAC 주소만 Pod를 종료할 수 있도록 허용하여 MAC 스푸핑 공격에 대한 보안을 제공합니다.
- 생성을 클릭합니다.
8.4.2.2. 명령줄을 사용하여 Linux 브리지 생성
명령줄을 사용하여 Pod 및 VM(가상 머신)에 계층 2 네트워킹을 제공하기 위해 네트워크 연결 정의(NAD)를 생성할 수 있습니다.
CryostatD와 VM은 동일한 네임스페이스에 있어야 합니다.
가상 머신의 네트워크 연결 정의에서 IP 주소 관리(IPAM) 구성은 지원되지 않습니다.
사전 요구 사항
-
노드는 nftables를 지원해야 하며 MAC 스푸핑 검사를 사용하려면
nft
바이너리를 배포해야 합니다.
프로세스
다음 예와 같이
NetworkAttachmentDefinition
구성에 VM을 추가합니다.apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: bridge-network 1 annotations: k8s.v1.cni.cncf.io/resourceName: bridge.network.kubevirt.io/bridge-interface 2 spec: config: '{ "cniVersion": "0.3.1", "name": "bridge-network", 3 "type": "cnv-bridge", 4 "bridge": "bridge-interface", 5 "macspoofchk": false, 6 "vlan": 100, 7 "preserveDefaultVlan": false 8 }'
- 1
NetworkAttachmentDefinition
개체의 이름입니다.- 2
- 선택 사항: 노드 선택을 위한 주석 키-값 쌍입니다. 여기서
bridge-interface
는 일부 노드에 구성된 브릿지 이름과 일치해야 합니다. 네트워크 연결 정의에 이 주석을 추가하면bridge-interface
브리지가 연결된 노드에서만 가상 머신 인스턴스가 실행됩니다. - 3
- 구성의 이름입니다. 구성 이름이 네트워크 연결 정의의
name
값과 일치하는 것이 좋습니다. - 4
- 이 네트워크 연결 정의에 네트워크를 제공하는 CNI(Container Network Interface) 플러그인의 실제 이름입니다. 다른 CNI를 사용하려는 경우를 제외하고 이 필드를 변경하지 마십시오.
- 5
- 노드에 구성된 Linux 브리지의 이름입니다.
- 6
- 선택사항: MAC 스푸핑 검사를 활성화하는 플래그입니다.
true
로 설정하면 Pod 또는 게스트 인터페이스의 MAC 주소를 변경할 수 없습니다. 이 속성을 사용하면 단일 MAC 주소만 Pod를 종료하여 MAC 스푸핑 공격에 대한 보안을 제공합니다. - 7
- 선택 사항: VLAN 태그. 노드 네트워크 구성 정책에 추가 VLAN 구성이 필요하지 않습니다.
- 8
- 선택 사항: VM이 기본 VLAN을 통해 브리지에 연결되는지 여부를 나타냅니다. 기본값은
true
입니다.
참고Linux 브리지 네트워크 연결 정의는 가상 머신을 VLAN에 연결하는 가장 효율적인 방법입니다.
네트워크 연결 정의를 만듭니다.
$ oc create -f network-attachment-definition.yaml 1
- 1
- 여기서
network-attachment-definition.yaml
은 네트워크 연결 정의 매니페스트의 파일 이름입니다.
검증
다음 명령을 실행하여 네트워크 연결 정의가 생성되었는지 확인합니다.
$ oc get network-attachment-definition bridge-network
8.4.3. VM 네트워크 인터페이스 구성
OpenShift Container Platform 웹 콘솔 또는 명령줄을 사용하여 VM(가상 머신) 네트워크 인터페이스를 구성할 수 있습니다.
8.4.3.1. 웹 콘솔을 사용하여 VM 네트워크 인터페이스 구성
OpenShift Container Platform 웹 콘솔을 사용하여 VM(가상 머신)의 네트워크 인터페이스를 구성할 수 있습니다.
사전 요구 사항
- 네트워크에 대한 네트워크 연결 정의를 생성했습니다.
프로세스
-
가상화
VirtualMachines 로 이동합니다. - VM을 클릭하여 VirtualMachine 세부 정보 페이지를 확인합니다.
- 구성 탭에서 네트워크 인터페이스 탭을 클릭합니다.
- 네트워크 인터페이스 추가를 클릭합니다.
- 인터페이스 이름을 입력하고 네트워크 목록에서 네트워크 연결 정의를 선택합니다.
- 저장을 클릭합니다.
- VM을 다시 시작하여 변경 사항을 적용합니다.
네트워킹 필드
이름 | 설명 |
---|---|
이름 | 네트워크 인터페이스 컨트롤러의 이름입니다. |
모델 | 네트워크 인터페이스 컨트롤러의 모델을 나타냅니다. 지원되는 값은 e1000e 및 virtio입니다. |
네트워크 | 사용 가능한 네트워크 연결 정의 목록입니다. |
유형 | 사용 가능한 바인딩 방법 목록입니다. 네트워크 인터페이스에 적합한 바인딩 방법을 선택합니다.
|
MAC 주소 | 네트워크 인터페이스 컨트롤러의 MAC 주소입니다. MAC 주소를 지정하지 않으면 주소가 자동으로 할당됩니다. |
8.4.3.2. 명령줄을 사용하여 VM 네트워크 인터페이스 구성
명령줄을 사용하여 브리지 네트워크에 대한 VM(가상 머신) 네트워크 인터페이스를 구성할 수 있습니다.
사전 요구 사항
- 구성을 편집하기 전에 가상 머신을 종료합니다. 실행 중인 가상 머신을 편집하는 경우 변경 사항을 적용하려면 가상 머신을 다시 시작해야 합니다.
프로세스
다음 예와 같이 브리지 인터페이스와 네트워크 연결 정의를 VM 구성에 추가합니다.
apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: example-vm spec: template: spec: domain: devices: interfaces: - bridge: {} name: bridge-net 1 # ... networks: - name: bridge-net 2 multus: networkName: a-bridge-network 3
설정을 적용합니다.
$ oc apply -f example-vm.yaml
- 선택 사항: 실행 중인 가상 머신을 편집한 경우 변경 사항을 적용하려면 가상 머신을 다시 시작해야 합니다.