검색

5.3. 설치 후 네트워크 구성

download PDF

기본적으로 OpenShift Virtualization은 단일 내부 pod 네트워크와 함께 설치됩니다.

OpenShift Virtualization을 설치한 후 네트워킹 Operator를 설치하고 추가 네트워크를 구성할 수 있습니다.

5.3.1. 네트워킹 Operator 설치

실시간 마이그레이션 또는 VM(가상 머신)에 대한 외부 액세스를 위해 Linux 브리지 네트워크를 구성하려면 Kubernetes NMState Operator 를 설치해야 합니다. 설치 지침은 웹 콘솔을 사용하여 Kubernetes NMState Operator 설치를 참조하십시오.

SR-IOV Operator 를 설치하여 SR-IOV 네트워크 장치 및 네트워크 연결을 관리할 수 있습니다. 설치 지침은 SR-IOV Network Operator 설치를 참조하십시오.

MetalLB Operator 를 추가하여 클러스터에서 MetalLB 인스턴스의 라이프사이클을 관리할 수 있습니다. 설치 지침은 웹 콘솔을 사용하여 OperatorHub에서 MetalLB Operator 설치를 참조하십시오.

5.3.2. Linux 브리지 네트워크 구성

Kubernetes NMState Operator를 설치한 후 실시간 마이그레이션 또는 VM(가상 머신)에 대한 외부 액세스를 위해 Linux 브리지 네트워크를 구성할 수 있습니다.

5.3.2.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
    1
    정책 이름입니다.
    2
    인터페이스 이름입니다.
    3
    선택 사항: 사람이 읽을 수 있는 인터페이스 설명입니다.
    4
    인터페이스 유형입니다. 이 예제에서는 브리지를 만듭니다.
    5
    생성 후 인터페이스에 요청되는 상태입니다.
    6
    이 예에서는 IPv4를 비활성화합니다.
    7
    이 예에서는 STP를 비활성화합니다.
    8
    브리지가 연결된 노드 NIC입니다.

5.3.2.2. 웹 콘솔을 사용하여 Linux 브리지 생성

OpenShift Container Platform 웹 콘솔을 사용하여 네트워크 연결 정의(NAD)를 생성하여 Pod 및 가상 머신에 계층 2 네트워킹을 제공할 수 있습니다.

Linux 브리지 네트워크 연결 정의는 가상 머신을 VLAN에 연결하는 가장 효율적인 방법입니다.

주의

가상 머신의 네트워크 연결 정의에서 IP 주소 관리(IPAM) 구성은 지원되지 않습니다.

프로세스

  1. 웹 콘솔에서 네트워킹 NetworkAttachmentDefinitions 를 클릭합니다.
  2. 네트워크 연결 정의 생성 을 클릭합니다.

    참고

    네트워크 연결 정의는 Pod 또는 가상 머신과 동일한 네임스페이스에 있어야 합니다.

  3. 고유한 이름과 선택적 설명을 입력합니다.
  4. 네트워크 유형 목록에서 CNV Linux 브리지 를 선택합니다.
  5. 브리지 이름 필드에 브리지 이름을 입력합니다.
  6. 선택 사항: 리소스에 VLAN ID가 구성된 경우 VLAN 태그 번호 필드에 ID 번호를 입력합니다.
  7. 선택 사항: MAC 스푸핑 검사를 선택하여 MAC 스푸핑 필터링을 활성화합니다. 이 기능은 단일 MAC 주소만 Pod를 종료할 수 있도록 허용하여 MAC 스푸핑 공격에 대한 보안을 제공합니다.
  8. 생성을 클릭합니다.

5.3.3. 실시간 마이그레이션을 위한 네트워크 구성

Linux 브리지 네트워크를 구성한 후 실시간 마이그레이션을 위한 전용 네트워크를 구성할 수 있습니다. 전용 네트워크는 실시간 마이그레이션 중에 테넌트 워크로드에 대한 네트워크 포화 상태로 인한 영향을 최소화합니다.

5.3.3.1. 실시간 마이그레이션을 위한 전용 보조 네트워크 구성

실시간 마이그레이션을 위해 전용 보조 네트워크를 구성하려면 먼저 CLI를 사용하여 브리지 네트워크 연결 정의(NAD)를 생성해야 합니다. 그런 다음 NetworkAttachmentDefinition 오브젝트의 이름을 HyperConverged CR(사용자 정의 리소스)에 추가합니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 역할의 사용자로 클러스터에 로그인했습니다.
  • 각 노드에는 NIC(네트워크 인터페이스 카드)가 두 개 이상 있습니다.
  • 실시간 마이그레이션의 NIC는 동일한 VLAN에 연결됩니다.

프로세스

  1. 다음 예에 따라 NetworkAttachmentDefinition 매니페스트를 생성합니다.

    설정 파일 예

    apiVersion: "k8s.cni.cncf.io/v1"
    kind: NetworkAttachmentDefinition
    metadata:
      name: my-secondary-network 1
      namespace: openshift-cnv 2
    spec:
      config: '{
        "cniVersion": "0.3.1",
        "name": "migration-bridge",
        "type": "macvlan",
        "master": "eth1", 3
        "mode": "bridge",
        "ipam": {
          "type": "whereabouts", 4
          "range": "10.200.5.0/24" 5
        }
      }'

    1
    NetworkAttachmentDefinition 오브젝트의 이름을 지정합니다.
    2 3
    실시간 마이그레이션에 사용할 NIC의 이름을 지정합니다.
    4
    CryostatD에 대한 네트워크를 제공하는 CNI 플러그인의 이름을 지정합니다.
    5
    보조 네트워크의 IP 주소 범위를 지정합니다. 이 범위는 기본 네트워크의 IP 주소를 겹치지 않아야 합니다.
  2. 다음 명령을 실행하여 기본 편집기에서 HyperConverged CR을 엽니다.

    oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
  3. HyperConverged CR의 spec.liveMigrationConfig 스탠자에 NetworkAttachmentDefinition 오브젝트의 이름을 추가합니다.

    HyperConverged 매니페스트의 예

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
    spec:
      liveMigrationConfig:
        completionTimeoutPerGiB: 800
        network: <network> 1
        parallelMigrationsPerCluster: 5
        parallelOutboundMigrationsPerNode: 2
        progressTimeout: 150
    # ...

    1
    실시간 마이그레이션에 사용할 Multus NetworkAttachmentDefinition 오브젝트의 이름을 지정합니다.
  4. 변경 사항을 저장하고 편집기를 종료합니다. virt-handler Pod가 다시 시작되고 보조 네트워크에 연결합니다.

검증

  • 가상 머신이 실행되는 노드가 유지보수 모드로 배치되면 VM이 클러스터의 다른 노드로 자동으로 마이그레이션됩니다. VMI(가상 머신 인스턴스) 메타데이터에서 대상 IP 주소를 확인하여 마이그레이션이 기본 pod 네트워크가 아닌 보조 네트워크를 통해 발생했는지 확인할 수 있습니다.

    $ oc get vmi <vmi_name> -o jsonpath='{.status.migrationState.targetNodeAddress}'

5.3.3.2. 웹 콘솔을 사용하여 전용 네트워크 선택

OpenShift Container Platform 웹 콘솔을 사용하여 실시간 마이그레이션 전용 네트워크를 선택할 수 있습니다.

사전 요구 사항

  • 실시간 마이그레이션을 위해 Multus 네트워크를 구성했습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 가상화 > 개요 로 이동합니다.
  2. 설정 탭을 클릭한 다음 실시간 마이그레이션 을 클릭합니다.
  3. 실시간 마이그레이션 네트워크 목록에서 네트워크를 선택합니다.

5.3.4. SR-IOV 네트워크 구성

SR-IOV Operator를 설치한 후 SR-IOV 네트워크를 구성할 수 있습니다.

5.3.4.1. SR-IOV 네트워크 장치 구성

SR-IOV Network Operator는 SriovNetworkNodePolicy.sriovnetwork.openshift.io CustomResourceDefinition을 OpenShift Container Platform에 추가합니다. SriovNetworkNodePolicy CR(사용자 정의 리소스)을 만들어 SR-IOV 네트워크 장치를 구성할 수 있습니다.

참고

SriovNetworkNodePolicy 오브젝트에 지정된 구성을 적용하면 SR-IOV Operator가 노드를 비우고 경우에 따라 노드를 재부팅할 수 있습니다.

구성 변경 사항을 적용하는 데 몇 분이 걸릴 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
  • SR-IOV Network Operator가 설치되어 있습니다.
  • 비운 노드에서 제거된 워크로드를 처리하기 위해 클러스터에 사용 가능한 노드가 충분합니다.
  • SR-IOV 네트워크 장치 구성에 대한 컨트롤 플레인 노드를 선택하지 않았습니다.

절차

  1. SriovNetworkNodePolicy 오브젝트를 생성한 후 YAML을 <name>-sriov-node-network.yaml 파일에 저장합니다. <name>을 이 구성의 이름으로 바꿉니다.

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovNetworkNodePolicy
    metadata:
      name: <name> 1
      namespace: openshift-sriov-network-operator 2
    spec:
      resourceName: <sriov_resource_name> 3
      nodeSelector:
        feature.node.kubernetes.io/network-sriov.capable: "true" 4
      priority: <priority> 5
      mtu: <mtu> 6
      numVfs: <num> 7
      nicSelector: 8
        vendor: "<vendor_code>" 9
        deviceID: "<device_id>" 10
        pfNames: ["<pf_name>", ...] 11
        rootDevices: ["<pci_bus_id>", "..."] 12
      deviceType: vfio-pci 13
      isRdma: false 14
    1
    CR 오브젝트의 이름을 지정합니다.
    2
    SR-IOV Operator가 설치된 네임스페이스를 지정합니다.
    3
    SR-IOV 장치 플러그인의 리소스 이름을 지정합니다. 리소스 이름에 대해 여러 SriovNetworkNodePolicy 오브젝트를 생성할 수 있습니다.
    4
    구성할 노드를 선택하려면 노드 선택기를 지정합니다. 선택한 노드의 SR-IOV 네트워크 장치만 구성됩니다. SR-IOV CNI(Container Network Interface) 플러그인 및 장치 플러그인은 선택한 노드에만 배포됩니다.
    5
    선택 사항: 0에서 99 사이의 정수 값을 지정합니다. 숫자가 작을수록 우선 순위가 높아지므로 우선 순위 10은 우선 순위 99보다 높습니다. 기본값은 99입니다.
    6
    선택 사항: 가상 기능의 최대 전송 단위(MTU) 값을 지정합니다. 최대 MTU 값은 NIC 모델마다 다를 수 있습니다.
    7
    SR-IOV 물리적 네트워크 장치에 생성할 가상 기능(VF) 수를 지정합니다. Intel NIC(Network Interface Controller)의 경우 VF 수는 장치에서 지원하는 총 VF보다 클 수 없습니다. Mellanox NIC의 경우 VF 수는 127 보다 클 수 없습니다.
    8
    nicSelector 매핑은 Operator가 구성할 이더넷 장치를 선택합니다. 모든 매개변수에 값을 지정할 필요는 없습니다. 의도하지 않게 이더넷 장치를 선택할 가능성을 최소화하기 위해 이더넷 어댑터를 충분히 정밀하게 식별하는 것이 좋습니다. rootDevices를 지정하면 vendor, deviceID 또는 pfNames의 값도 지정해야 합니다. pfNamesrootDevices를 동시에 지정하는 경우 동일한 장치를 가리키는지 확인하십시오.
    9
    선택 사항: SR-IOV 네트워크 장치의 공급업체 16진 코드를 지정합니다. 허용되는 유일한 값은 8086 또는 15b3입니다.
    10
    선택 사항: SR-IOV 네트워크 장치의 장치 16진수 코드를 지정합니다. 허용되는 값은 158b, 1015, 1017입니다.
    11
    선택 사항:이 매개변수는 이더넷 장치에 대한 하나 이상의 PF(물리적 기능) 이름 배열을 허용합니다.
    12
    이 매개변수는 이더넷 장치의 물리적 기능을 위해 하나 이상의 PCI 버스 주소 배열을 허용합니다. 주소를 0000:02: 00.1 형식으로 입력합니다.
    13
    vfio-pci 드라이버 유형은 OpenShift Virtualization의 가상 기능에 필요합니다.
    14
    선택 사항: 원격 직접 메모리 액세스(RDMA) 모드 사용 여부를 지정합니다. Mellanox 카드의 경우 isRdmafalse로 설정합니다. 기본값은 false입니다.
    참고

    isRDMA 플래그가 true로 설정된 경우 RDMA 가능 VF를 일반 네트워크 장치로 계속 사용할 수 있습니다. 어느 모드에서나 장치를 사용할 수 있습니다.

  2. 선택 사항: SriovNetworkNodePolicy.Spec.NodeSelector 를 사용하여 SR-IOV 가능 클러스터 노드에 레이블을 지정하지 않은 경우 레이블을 지정합니다. 노드 레이블 지정에 대한 자세한 내용은 "노드에서 라벨을 업데이트하는 방법 이해"를 참조하십시오.
  3. SriovNetworkNodePolicy 오브젝트를 생성합니다.

    $ oc create -f <name>-sriov-node-network.yaml

    <name>은 이 구성의 이름을 지정합니다.

    구성 업데이트를 적용하면 sriov-network-operator 네임스페이스의 모든 Pod가 Running 상태로 전환됩니다.

  4. SR-IOV 네트워크 장치가 구성되어 있는지 확인하려면 다음 명령을 입력합니다. <node_name>을 방금 구성한 SR-IOV 네트워크 장치가 있는 노드 이름으로 바꿉니다.

    $ oc get sriovnetworknodestates -n openshift-sriov-network-operator <node_name> -o jsonpath='{.status.syncStatus}'

5.3.5. 웹 콘솔을 사용하여 로드 밸런서 서비스 생성 활성화

OpenShift Container Platform 웹 콘솔을 사용하여 VM(가상 머신)에 대한 로드 밸런서 서비스 생성을 활성화할 수 있습니다.

사전 요구 사항

  • 클러스터에 대한 로드 밸런서를 구성했습니다.
  • cluster-admin 역할의 사용자로 로그인되어 있습니다.

프로세스

  1. 가상화 개요 로 이동합니다.
  2. 설정 탭에서 클러스터를 클릭합니다.
  3. 일반 설정SSH 구성 을 확장합니다.
  4. LoadBalancer 서비스를 통한 SSH 를 on으로 설정합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.