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


기본적으로 SR-IOV Network Operator는 모든 정책이 변경되기 전에 노드에서 워크로드를 드레이닝합니다. Operator는 한 번에 하나의 노드인 이 작업을 수행하여 재구성이 워크로드에 영향을 미치지 않도록 합니다.

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

병렬 드레이닝을 구성하려면 SriovNetworkPoolConfig CR을 사용하여 노드 풀을 생성합니다. 그런 다음 풀에 노드를 추가하고 Operator가 병렬로 드레이닝할 수 있는 풀의 최대 노드 수를 정의할 수 있습니다. 이 방법을 사용하면 실행 중인 워크로드를 처리할 수 있는 충분한 노드가 풀에 남아 있도록 동시에 재구성할 수 있도록 병렬 드레이닝을 활성화할 수 있습니다.

참고

노드는 하나의 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 Network Operator가 설치된 네임스페이스를 지정합니다.
    3
    업데이트 중에 풀에서 사용할 수 없는 노드에 대해 정수 숫자 또는 백분율 값을 지정합니다. 예를 들어 10개의 노드가 있고 사용할 수 없는 최대 노드를 2개로 설정하면 언제든지 2개의 노드만 병렬로 드레이닝되어 워크로드를 처리하기 위해 8개의 노드를 유지할 수 있습니다.
    4
    노드 선택기를 사용하여 풀을 추가할 노드를 지정합니다. 이 예제에서는 worker 역할이 있는 모든 노드를 풀에 추가합니다.
  2. 다음 명령을 실행하여 SriovNetworkPoolConfig 리소스를 생성합니다.

    $ oc create -f sriov-nw-pool.yaml
    Copy to Clipboard Toggle word wrap
  3. 다음 comand를 실행하여 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

    예상 출력에는 작업자 역할이 있는 모든 노드와 노드 의 기간(예: 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 STATUSSucceeded 로 변경되고 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