3.6. SR-IOV 네트워크 정책 업데이트 중 병렬 노드 드레이닝 구성


기본적으로 SR-IOV 네트워크 운영자는 정책이 변경되기 전에 노드에서 작업 부하를 제거합니다. 운영자는 재구성으로 인해 작업 부하가 영향을 받지 않도록 한 번에 한 노드씩 이 작업을 수행합니다.

대규모 클러스터에서 노드를 순차적으로 비우는 작업은 시간이 많이 걸릴 수 있으며, 몇 시간 또는 며칠이 걸릴 수도 있습니다. 시간에 민감한 환경에서는 SriovNetworkPoolConfig 사용자 정의 리소스(CR)에서 병렬 노드 드레이닝을 활성화하여 SR-IOV 네트워크 구성을 더 빠르게 롤아웃할 수 있습니다.

병렬 드레이닝을 구성하려면 SriovNetworkPoolConfig CR을 사용하여 노드 풀을 만듭니다. 그런 다음 풀에 노드를 추가하고 운영자가 병렬로 비울 수 있는 풀의 최대 노드 수를 정의할 수 있습니다. 이 접근 방식을 사용하면 풀에 실행 중인 작업 부하를 처리할 수 있는 충분한 노드가 남아 있는지 확인하는 동시에 더 빠른 재구성을 위해 병렬 드레이닝을 활성화할 수 있습니다.

참고

노드는 하나의 SR-IOV 네트워크 풀 구성에만 속할 수 있습니다. 노드가 풀에 속하지 않으면 한 번에 하나의 노드만 비우도록 구성된 가상 기본 풀에 추가됩니다.

노드는 배수 과정 중에 다시 시작될 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 로그인합니다.
  • SR-IOV Network Operator 설치.
  • 노드에는 SR-IOV를 지원하는 하드웨어가 있습니다.

프로세스

  1. SriovNetworkPoolConfig 리소스를 만듭니다.

    1. SriovNetworkPoolConfig 리소스를 정의하는 YAML 파일을 만듭니다.

      sriov-nw-pool.yaml 파일 예시

      apiVersion: v1
      kind: SriovNetworkPoolConfig
      metadata:
        name: pool-1 
      1
      
        namespace: openshift-sriov-network-operator 
      2
      
      spec:
        maxUnavailable: 2 
      3
      
        nodeSelector: 
      4
      
          matchLabels:
            node-role.kubernetes.io/worker: ""
      Copy to Clipboard Toggle word wrap

      1
      SriovNetworkPoolConfig 개체의 이름을 지정합니다.
      2
      SR-IOV 네트워크 운영자가 설치된 네임스페이스를 지정합니다.
      3
      업데이트 중에 풀에서 사용할 수 없는 노드에 대한 정수 또는 백분율 값을 지정합니다. 예를 들어, 노드가 10개이고 사용할 수 없는 최대 노드 수를 2로 설정하면 언제든지 병렬로 비울 수 있는 노드는 2개뿐이고, 작업 부하를 처리할 수 있는 노드는 8개 남습니다.
      4
      노드 선택기를 사용하여 풀을 추가할 노드를 지정합니다. 이 예제에서는 작업자 역할이 있는 모든 노드를 풀에 추가합니다.
    2. 다음 명령을 실행하여 SriovNetworkPoolConfig 리소스를 만듭니다.

      $ oc create -f sriov-nw-pool.yaml
      Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 sriov-test 네임스페이스를 만듭니다.

    $ oc create namespace sriov-test
    Copy to Clipboard Toggle word wrap
  3. SriovNetworkNodePolicy 리소스를 만듭니다.

    1. SriovNetworkNodePolicy 리소스를 정의하는 YAML 파일을 만듭니다.

      sriov-node-policy.yaml 파일 예시

      apiVersion: sriovnetwork.openshift.io/v1
      kind: SriovNetworkNodePolicy
      metadata:
        name: sriov-nic-1
        namespace: openshift-sriov-network-operator
      spec:
        deviceType: netdevice
        nicSelector:
          pfNames: ["ens1"]
        nodeSelector:
          node-role.kubernetes.io/worker: ""
        numVfs: 5
        priority: 99
        resourceName: sriov_nic_1
      Copy to Clipboard Toggle word wrap

    2. 다음 명령을 실행하여 SriovNetworkNodePolicy 리소스를 만듭니다.

      $ oc create -f sriov-node-policy.yaml
      Copy to Clipboard Toggle word wrap
  4. SriovNetwork 리소스를 만듭니다.

    1. SriovNetwork 리소스를 정의하는 YAML 파일을 만듭니다.

      sriov-network.yaml 파일 예시

      apiVersion: sriovnetwork.openshift.io/v1
      kind: SriovNetwork
      metadata:
        name: sriov-nic-1
        namespace: openshift-sriov-network-operator
      spec:
        linkState: auto
        networkNamespace: sriov-test
        resourceName: sriov_nic_1
        capabilities: '{ "mac": true, "ips": true }'
        ipam: '{ "type": "static" }'
      Copy to Clipboard Toggle word wrap

    2. 다음 명령을 실행하여 SriovNetwork 리소스를 만듭니다.

      $ oc create -f sriov-network.yaml
      Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 생성한 노드 풀을 확인하세요.

    $ oc get sriovNetworkpoolConfig -n openshift-sriov-network-operator
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME     AGE
    pool-1   67s 
    1
    Copy to Clipboard Toggle word wrap

    1
    이 예에서 pool-1 에는 작업자 역할이 있는 모든 노드가 포함되어 있습니다.

위 절차의 예제 시나리오를 사용하여 노드 드레이닝 프로세스를 시연하려면 다음 단계를 완료하세요.

  1. 클러스터에서 작업 부하 감소를 트리거하기 위해 SriovNetworkNodePolicy 리소스의 가상 함수 수를 업데이트합니다.

    $ oc patch SriovNetworkNodePolicy sriov-nic-1 -n openshift-sriov-network-operator --type merge -p '{"spec": {"numVfs": 4}}'
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 대상 클러스터의 드레이닝 상태를 모니터링합니다.

    $ oc get sriovNetworkNodeState -n openshift-sriov-network-operator
    Copy to Clipboard Toggle word wrap

    출력 예

    NAMESPACE                          NAME       SYNC STATUS   DESIRED SYNC STATE   CURRENT SYNC STATE   AGE
    openshift-sriov-network-operator   worker-0   InProgress    Drain_Required       DrainComplete        3d10h
    openshift-sriov-network-operator   worker-1   InProgress    Drain_Required       DrainComplete        3d10h
    Copy to Clipboard Toggle word wrap

    배수 프로세스가 완료되면 SYNC STATUS가 Succeeded 로 변경되고 DESIRED SYNC STATECURRENT SYNC STATE 값은 IDLE 로 돌아갑니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat