OpenShift Virtualization이 VM 라이브 마이그레이션을 지원하는 방식

Red Hat Blog를 보다가 관심 가는 글이 보여서 AI번역+약간 교정해 보았습니다.
출처: https://developers.redhat.com/articles/2025/06/05/how-openshift-virtualization-supports-vm-live-migration

향상된 성능, 안정성, 보안 및 관리 용이성이 필요한 특정 상황에서는 Red Hat OpenShift Virtualization 내 전용 네트워크에서 가상 머신(VM) 라이브 마이그레이션 트래픽을 격리할 수 있습니다 . Nmstate Operator에서 제공하는 NodeNetworkConfigurationPolicy(NNCP)를 사용하여 해당 브리지를 참조하는 NetworkAttachmentDefinition(NAD)을 포함하는 Open vSwitch(OVS) 브리지를 생성합니다. 이 구성을 통해 OpenShift Virtualization은 마이그레이션 데이터에 별도의 물리적 네트워크 또는 VLAN을 활용할 수 있습니다. 이 문서에서는 이러한 설정에 대한 단계별 가이드를 제공합니다.

NodeNetworkConfigurationPolicy(NNCP) 생성

NNCP(NodeNetworkConfigurationPolicy)는 2일차 작업 중에 클러스터 노드에 네트워크 구성을 적용하는 방식을 나타냅니다. 이러한 설정은 간단한 YAML 형식으로 적용하거나 Red Hat OpenShift 웹 콘솔 GUI를 사용하여 추가 네트워크 및 브리지를 구성할 수 있습니다. 

NodeNetworkConfigurationPolicy를 생성하려면 다음 단계를 따르세요(그림 1).

  1. OpenShift 웹 콘솔 UI에서 Networking → NodeNetworkConfigurationPolicy로 이동합니다. 
  2. Create → From Form에서를 클릭 하고 요구 사항에 맞게 양식을 작성하세요. 
NNCP 구성
그림 1: OpenShift 웹 콘솔에서 NNCP 구성.

이 페이지에서 주의할 주요 사항은 다음과 같습니다.

  • br-lm는 브리지의 인터페이스 이름입니다.
  • 유형:  ovs-bridge는 Nmstate에게 Open vSwitch(OVS) 브리지를 생성하라고 지시합니다.
  • OVN 로컬넷 이름:  ovs-lm는 OVS 브리지에 대한 로컬넷 매핑의 이름입니다.
  • OVN 브리지 이름:  br-lmovs-bridge에 지정된 OVS 브리지의 이름입니다.

다음은 NNCP의 YAML 정의입니다.

apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
  annotations:
    description: Network configuration for enp4s0 on all nodes
  name: live-migration
spec:
  desiredState:
    interfaces:
      - bridge:
          allow-extra-patch-ports: true
          options:
            stp: false
          port:
            - name: enp4s0
            - name: br-lm
        name: br-lm
        state: up
        type: ovs-bridge
    ovn:
      bridge-mappings:
        - bridge: br-lm
          localnet: ovs-lm
          state: present

NetworkAttachmentDefinition(NAD) 만들기

NetworkAttachmentDefinition(NAD)은  Multus (및 OVN-Kubernetes )가 Pod 또는 가상 머신을 특정 네트워크에 연결하도록 지시합니다. 예를 들어, 앞서 언급한 NNCP의 로컬 네트워크 매핑(ovs-lm)과 3030과 같은 VLAN을 참조하여 openshift-cnv 네임스페이스에 NAD를 생성합니다.

NetworkAttachmentDefinition을 생성하려면 다음 단계를 따르세요(그림 2).

  1. OpenShift 웹 콘솔 UI에서 Networking → NetworkAttachmentDefinition을 선택합니다.
  2. Project 메뉴 에서 openshift-cnv를 선택하세요 . 모든 시스템 프로젝트를 나열하려면  Show default projects 활성화해야 할 수도 있습니다 .
  3. Create NetworkAttachmentDefinition 클릭 하고 요구 사항에 맞게 양식을 작성하세요. 
  4. Create 클릭합니다 .
NetworkAttachmentDefinition 스크린샷
그림 2: OpenShift 웹 콘솔에서 NetworkAttachmentDefinition 만들기.

이 페이지에서 주의할 주요 사항은 다음과 같습니다.

  • 프로젝트  openshift-cnv: NAD가 생성될 프로젝트 또는 네임스페이스입니다.
  • nad-live-migrate: 이는 OpenShift Virtualization이 라이브 마이그레이션 네트워크로 사용할 NAD의 이름입니다.
  • 네트워크 유형  OVN Kubernetes secondary localnet network: NNCP를 사용하여 로컬넷을 만들었으므로 이를 선택해야 합니다.
  • 브리지 매핑  ovs-lm: 이는 OVN 로컬넷 이름에 대해 NNCP에서 제공된 이름과 동일합니다.
  • VLAN  3030: VLAN을 사용하는 경우 해당 VLAN ID를 입력하세요.

NAD에 서브넷 추가

이제 다음 단계에 따라 네임스페이스 openshift-cnvvirt-handler 포드에  자동으로 IP를 할당하기 위한 서브넷을 포함하도록 새로 생성된 NAD를 편집합니다  (그림 3).

  1. OpenShift 웹 콘솔에서 Networking → NetworkAttachmentDefinition을 선택합니다. 
  2. 프로젝트 목록 에서 openshift-cnv 프로젝트를 선택합니다 .
  3. 새로 생성된 NAD nad-live-migrate를 클릭합니다 .
  4. YAML을 클릭합니다 .
  5. JSON 구성을 편집하고 필요한 서브넷을 추가하세요. 오류를 방지하려면 JSON 형식을 올바르게 지정하세요.
서브넷을 포함하도록 NetworkAttachmentDefinition을 편집합니다.
그림 3: 서브넷을 포함하도록 NetworkAttachmentDefinition을 편집합니다.

다음은 NAD의 결합된 YAML 정의입니다.

apiVersion: k8s.cni.cncf.io/v1
kind: NetworkAttachmentDefinition
metadata:
  name: nad-live-migrate
  namespace: openshift-cnv
spec:
  config: |-
    {
        "cniVersion": "0.4.0",
        "name": "ovs-lm",
        "type": "ovn-k8s-cni-overlay",
        "netAttachDefName": "openshift-cnv/nad-live-migrate",
        "topology": "localnet",
        "vlanID": 3030,
        "subnets": "192.168.100.0/24",
        "excludeSubnets": "192.168.100.0/30"
    }

OpenShift Virtualization 구성 업데이트

새로 생성된 NAD를 사용하도록 OpenShift Virtualization 구성을 업데이트해 보겠습니다. 다음 단계를 보여주는 그림 4를 참조하십시오.

  1. 클러스터 관리자로서  OpenShift 웹 콘솔의 왼쪽에 있는 Virtualization → Overview 로 이동합니다.
  2. Settings → General Settings → Live Migration 클릭합니다  . 
  3. 라이브 마이그레이션 네트워크 목록에서  nad-live-migrate를 선택합니다  .
OpenShift Virtualization 설정에서 라이브 마이그레이션 네트워크 변경
그림 4: OpenShift Virtualization 설정에서 라이브 마이그레이션 네트워크를 변경합니다.

다음과 같이 명령줄 인터페이스(CLI)를 사용하여 이 작업을 수행할 수도 있습니다.

oc patch HyperConverged kubevirt-hyperconverged -n openshift-cnv --type=merge -p '{"spec":{"liveMigrationConfig":{"network":"nad-live-migrate"}}}'

주의할 점:

  • HyperConverged: 사용자 정의 리소스(CR)
  • Kubevirt-hyperconverged: 사용자 지정 리소스의 이름입니다. 올바른 이름을 지정했는지 확인하세요. oc get HyperConverged -n openshift-cnv 명령을 사용하여 CR을 나열할 수 있습니다.
  • openshift-cnv: 네임스페이스입니다.
  • nad-live-migrate: 우리가 이전에 만든 NAD입니다.

변화 모니터링

이제 보조 네트워크에서 라이브 마이그레이션을 시작할 준비가 거의 되었습니다. 하지만 마이그레이션을 시도하기 전에  네임스페이스 virt-handler의  openshift-cnv모든 포드가 재시작되었고 상태가 양호한지 확인하는 것이 좋습니다.

클러스터에는 베어 메탈 노드가 네 개 있습니다. 따라서 네 개의 포드가 있으며  virt-handler, 각 포드는 해당 노드 중 하나에서 실행됩니다. 모든 포드가 실행 중 상태이고 준비 상태가 1/1인지 확인하세요. 또한 그림 5와 같이 생성 시간을 확인하여 모든 포드가 최근에 재시작되었는지 확인하세요.

virt-handler 포드가 실행 중이고 정상인지 확인합니다.
그림 5: virt-handler 포드가 실행 중이고 정상인지 확인합니다.

마이그레이션 테스트

virt-handler 포드가 실행 중이고 정상 상태인지 확인한 후  VM의 라이브 마이그레이션을 테스트할 수 있습니다. 예를 들어, 그림 6은 fedora-01이라는 가상 머신의 라이브 마이그레이션을 보여줍니다.

라이브 마이그레이션을 실행하려면 다음 단계를 따르세요.

  1. 왼쪽 탐색 메뉴에서 Virtualization → VirtualMachines 선택합니다 .
  2. 마이그레이션이 필요한 가상 머신의 오른쪽에 있는 세 개의 점(케밥)을 클릭합니다(예: fedora-01).
  3. Migrate 클릭하여 라이브 마이그레이션 프로세스를 시작합니다. 몇 초 안에 가상 머신이 기존 호스트에서 클러스터의 다른 호스트로 마이그레이션됩니다. 
라이브 마이그레이션 테스트 예시
그림 6: 이것은 fedora-01이라는 VM에 대한 라이브 마이그레이션 테스트의 예입니다.

다음과 같이 새로운 라이브 마이그레이션 네트워크에서 해당 VMItargetNodeAddress 항목이 있는지  확인할 수도 있습니다.

$ oc get vmi fedora-01 -o json | jq '.status.migrationState | {targetNode, targetNodeAddress, targetPod}'
{
  "targetNode": "master-2",
  "targetNodeAddress": "192.168.100.15",
  "targetPod": "virt-launcher-fedora-01-7gr8p"
}

보시다시피, NAD에 할당된 IP 주소 풀에서 IP 주소가 표시되고 해당 주소가 속한 노드가 표시됩니다. 

마지막 생각

라이브 마이그레이션을 위한 전용 네트워크를 설정하여 OpenShift Virtualization이 실제 기업의 요구 사항을 어떻게 지원하는지 확인할 수 있습니다.  OpenShift Virtualization은 강력하고 관리하기 쉬운 방식으로 중요한 애플리케이션을 처리하도록 설계되었습니다. OpenShift Virtualization을 사용해 보고 가상 머신을 빠르고 안정적으로 실행하는 데 얼마나 도움이 되는지 직접 확인해 보세요. Red Hat OpenShift Container Platform 문서 “라이브 마이그레이션을 위한 전용 네트워크 구성”을 참조하세요 .

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like
Read More

Kubernetes용 Red Hat Advanced Cluster Management를 사용하여 대규모 OpenShift Virtualization 모니터링: 1부

Red Hat Blog를 보다가 관심 가는 글이 보여서 AI번역+약간 교정해 보았습니다.출처: https://developers.redhat.com/articles/2024/12/05/monitor-openshift-virtualization-scale-red-hat-advanced-cluster-management Red Hat OpenShift Virtualization은 새로운 기술이 아니지만 ,…