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를 지원하는 하드웨어가 있습니다.
프로세스
SriovNetworkPoolConfig
리소스를 만듭니다.SriovNetworkPoolConfig
리소스를 정의하는 YAML 파일을 만듭니다.sriov-nw-pool.yaml
파일 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
SriovNetworkPoolConfig
리소스를 만듭니다.oc create -f sriov-nw-pool.yaml
$ oc create -f sriov-nw-pool.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 명령을 실행하여
sriov-test
네임스페이스를 만듭니다.oc create namespace sriov-test
$ oc create namespace sriov-test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SriovNetworkNodePolicy
리소스를 만듭니다.SriovNetworkNodePolicy
리소스를 정의하는 YAML 파일을 만듭니다.sriov-node-policy.yaml
파일 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
SriovNetworkNodePolicy
리소스를 만듭니다.oc create -f sriov-node-policy.yaml
$ oc create -f sriov-node-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
SriovNetwork
리소스를 만듭니다.SriovNetwork
리소스를 정의하는 YAML 파일을 만듭니다.sriov-network.yaml
파일 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
SriovNetwork
리소스를 만듭니다.oc create -f sriov-network.yaml
$ oc create -f sriov-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 생성한 노드 풀을 확인하세요.
oc get sriovNetworkpoolConfig -n openshift-sriov-network-operator
$ oc get sriovNetworkpoolConfig -n openshift-sriov-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME AGE pool-1 67s
NAME AGE pool-1 67s
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이 예에서
pool-1
에는작업자
역할이 있는 모든 노드가 포함되어 있습니다.
위 절차의 예제 시나리오를 사용하여 노드 드레이닝 프로세스를 시연하려면 다음 단계를 완료하세요.
클러스터에서 작업 부하 감소를 트리거하기 위해
SriovNetworkNodePolicy
리소스의 가상 함수 수를 업데이트합니다.oc patch SriovNetworkNodePolicy sriov-nic-1 -n openshift-sriov-network-operator --type merge -p '{"spec": {"numVfs": 4}}'
$ oc patch SriovNetworkNodePolicy sriov-nic-1 -n openshift-sriov-network-operator --type merge -p '{"spec": {"numVfs": 4}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 대상 클러스터의 드레이닝 상태를 모니터링합니다.
oc get sriovNetworkNodeState -n openshift-sriov-network-operator
$ oc get sriovNetworkNodeState -n openshift-sriov-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
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
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 Copied! Toggle word wrap Toggle overflow 배수 프로세스가 완료되면
SYNC STATUS가
Succeeded
로 변경되고DESIRED SYNC STATE
와CURRENT SYNC STATE
값은IDLE
로 돌아갑니다.