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