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


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

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

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

참고

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

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

이 절차를 수행하려면 SR-IOV 리소스를 만든 다음 노드를 병렬로 비워야 합니다.

사전 요구 사항

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

프로세스

  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
  3. 다음 명령을 실행하여 sriov-test 네임스페이스를 만듭니다.

    $ oc create namespace sriov-test
    Copy to Clipboard Toggle word wrap
  4. 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

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

    $ oc create -f sriov-node-policy.yaml
    Copy to Clipboard Toggle word wrap
  6. 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

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

    $ oc create -f sriov-network.yaml
    Copy to Clipboard Toggle word wrap
  8. 다음 명령을 실행하여 생성한 노드 풀을 확인하세요.

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

    예상 출력에는 모든 노드에 대한 작업자 역할이 포함된 노드 풀의 이름(예: pool-1 )과 노드 풀의 수명(예: 67s) 이 초 단위로 표시됩니다.

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

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

    $ 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