8.2. Intel NIC와 함께 DPDK 모드에서 가상 기능 사용
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. - SR-IOV Network Operator 설치.
-
cluster-admin
권한이 있는 사용자로 로그인합니다.
프로세스
다음
SriovNetworkNodePolicy
오브젝트를 생성한 다음 YAML을intel-dpdk-node-policy.yaml
파일에 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 가상 기능의 드라이버 유형을
vfio-pci
로 지정합니다.
참고SriovNetworkNodePolicy
의 각 옵션에 대한 자세한 설명은Configuring SR-IOV network devices
섹션을 참조하십시오.SriovNetworkNodePolicy
오브젝트에 지정된 구성을 적용하면 SR-IOV Operator가 노드를 비우고 경우에 따라 노드를 재부팅할 수 있습니다. 구성 변경 사항을 적용하는 데 몇 분이 걸릴 수 있습니다. 제거된 워크로드를 사전에 처리하는 데 클러스터에 사용 가능한 노드가 충분한지 확인하십시오.구성 업데이트가 적용되면
openshift-sriov-network-operator
네임스페이스의 모든 Pod 상태가Running
으로 변경됩니다.다음 명령을 실행하여
SriovNetworkNodePolicy
오브젝트를 생성합니다.oc create -f intel-dpdk-node-policy.yaml
$ oc create -f intel-dpdk-node-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음
SriovNetwork
오브젝트를 생성한 다음 YAML을intel-dpdk-network.yaml
파일에 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ipam CNI 플러그인의 구성 오브젝트를 YAML 블록 스칼라로 지정합니다. 플러그인은 연결 정의에 대한 IP 주소 할당을 관리합니다.
참고SriovNetwork
의 각 옵션에 대한 자세한 설명은 " SR-IOV 추가 네트워크 구성" 섹션을 참조하십시오.선택적 라이브러리인 app-netutil은 컨테이너의 상위 pod에 대한 네트워크 정보를 수집하기 위한 여러 API 메서드를 제공합니다.
다음 명령을 실행하여
SriovNetwork
오브젝트를 생성합니다.oc create -f intel-dpdk-network.yaml
$ oc create -f intel-dpdk-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음
Pod
사양을 생성한 다음 YAML을intel-dpdk-pod.yaml
파일에 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
SriovNetwork
오브젝트intel-dpdk-network
가 생성되는 동일한target_namespace
를 지정합니다. 다른 네임스페이스에서 Pod를 생성하려면Pod
사양과SriovNetwork
오브젝트 모두에서target_namespace
를 변경합니다.- 2
- 애플리케이션 및 애플리케이션이 사용하는 DPDK 라이브러리를 포함하는 DPDK 이미지를 지정합니다.
- 3
- hugepage 할당, 시스템 리소스 할당 및 네트워크 인터페이스 액세스를 위해 컨테이너 내부의 애플리케이션에 필요한 추가 기능을 지정합니다.
- 4
/mnt/huge
의 DPDK Pod에 hugepage 볼륨을 마운트합니다. hugepage 볼륨은 매체가Hugepages
인 emptyDir 볼륨 유형으로 지원됩니다.- 5
- 선택사항: DPDK Pod에 할당된 DPDK 장치 수를 지정합니다. 명시적으로 지정되지 않은 경우 이 리소스 요청 및 제한은 SR-IOV 네트워크 리소스 인젝터에 의해 자동으로 추가됩니다. SR-IOV 네트워크 리소스 인젝터는 SR-IOV Operator에서 관리하는 승인 컨트롤러 구성 요소입니다. 기본적으로 활성화되어 있으며 기본
SriovOperatorConfig
CR에서enableInjector
옵션을false
로 설정하여 비활성화할 수 있습니다. - 6
- CPU 수를 지정합니다. DPDK pod는 일반적으로 kubelet에서 배타적 CPU를 할당해야 합니다. 이를 위해 CPU 관리자 정책을
static
으로 설정하고 QoS가보장
된 Pod를 생성합니다. - 7
- hugepage 크기
hugepages-1Gi
또는hugepages-2Mi
를 지정하고 DPDK Pod에 할당할 hugepage 수량을 지정합니다.2Mi
및1Gi
hugepage를 별도로 구성합니다.1Gi
hugepage를 구성하려면 커널 인수를 노드에 추가해야 합니다. 예를 들어, 커널 인수default_hugepagesz = 1GB
,hugepagesz = 1G
및hugepages = 16
을 추가하면 시스템 부팅 시16 * 1Gi
hugepage가 할당됩니다.
다음 명령을 실행하여 DPDK Pod를 생성합니다.
oc create -f intel-dpdk-pod.yaml
$ oc create -f intel-dpdk-pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow