K8s qat device plugin is not supported (r6,dsR6,dsR7)

QAT Plugin marked as starlingx only.

Signed-off-by: Elisamara Aoki Goncalves <elisamaraaoki.goncalves@windriver.com>
Change-Id: Ic2ce74d2e86886717abf1de7a79c25ec3477a9d3
This commit is contained in:
Elisamara Aoki Goncalves 2022-08-31 11:33:07 -03:00
parent 126131ce63
commit 64b463c346
2 changed files with 89 additions and 75 deletions

View File

@ -48,7 +48,17 @@ Optimize application performance
kubernetes-cpu-manager-policies
isolating-cpu-cores-to-enhance-application-performance
kubernetes-topology-manager-policies
k8s_qat_device_plugin
.. only:: starlingx
-----------------
QAT Device Plugin
-----------------
.. toctree::
:maxdepth: 1
k8s_qat_device_plugin
--------------

View File

@ -1,111 +1,115 @@
==========================================
Kubernetes QAT Device Plugin Configuration
==========================================
.. _k8s_qat_device_plugin:
Intel® QuickAssist Technology (Intel® QAT) accelerates cryptographic workloads
by offloading the data to hardware capable of optimizing those functions. This
guide describes how to enable and consume the Intel QAT device plugin in
StarlingX.
.. only:: starlingx
.. contents::
:local:
:depth: 1
==========================================
Kubernetes QAT Device Plugin Configuration
==========================================
-------------
Prerequisites
-------------
Intel® QuickAssist Technology (Intel® QAT) accelerates cryptographic workloads
by offloading the data to hardware capable of optimizing those functions. This
guide describes how to enable and consume the Intel QAT device plugin in
StarlingX.
- Install Intel QuickAssist device on host.
- Install StarlingX on bare metal with DPDK enabled. Refer to the |_link-inst-book|
for details.
.. contents::
:local:
:depth: 1
------------------------------
Enable Intel QAT device plugin
------------------------------
-------------
Prerequisites
-------------
The Intel QAT device plugin daemonset is pre-installed in StarlingX. This
section describes the steps to enable the Intel QAT device plugin for
discovering and advertising QAT VF resources to Kubernetes host.
- Install Intel QuickAssist device on host.
- Install StarlingX on bare metal with DPDK enabled. Refer to the |_link-inst-book|
for details.
#. Verify QuickAssist SR-IOV virtual functions are configured on a specified
node after StarlingX is installed. This example uses the worker-0 node.
------------------------------
Enable Intel QAT device plugin
------------------------------
::
The Intel QAT device plugin daemonset is pre-installed in StarlingX. This
section describes the steps to enable the Intel QAT device plugin for
discovering and advertising QAT VF resources to Kubernetes host.
$ ssh worker-0
$ for i in 0442 0443 37c9 19e3; do lspci -d 8086:$i; done
#. Verify QuickAssist SR-IOV virtual functions are configured on a specified
node after StarlingX is installed. This example uses the worker-0 node.
.. note::
::
The Intel QAT device plugin only supports QAT VF resources in the current
release.
$ ssh worker-0
$ for i in 0442 0443 37c9 19e3; do lspci -d 8086:$i; done
#. Assign the ``intelqat`` label to the node (worker-0 in this example).
.. note::
::
The Intel QAT device plugin only supports QAT VF resources in the current
release.
$ NODE=worker-0
$ system host-lock $NODE
$ system host-label-assign $NODE intelqat=enabled
$ system host-unlock $NODE
#. Assign the ``intelqat`` label to the node (worker-0 in this example).
#. After the node becomes available, verify the Intel QAT device plugin is
registered.
::
::
$ NODE=worker-0
$ system host-lock $NODE
$ system host-label-assign $NODE intelqat=enabled
$ system host-unlock $NODE
$ kubectl describe node $NODE | grep qat.intel.com/generic
qat.intel.com/generic: 10
qat.intel.com/generic: 10
#. After the node becomes available, verify the Intel QAT device plugin is
registered.
-------------------------------
Consume Intel QAT device plugin
-------------------------------
::
#. Build the DPDK image.
$ kubectl describe node $NODE | grep qat.intel.com/generic
qat.intel.com/generic: 10
.intel.com/generic: 10
::
-------------------------------
Consume Intel QAT device plugin
-------------------------------
$ git clone https://github.com/intel/intel-device-plugins-for-kubernetes.git
$ cd demo
$ ./build-image.sh crypto-perf
#. Build the DPDK image.
This command produces a Docker image named ``crypto-perf``.
::
#. Deploy a pod to run an example DPDK application named
``dpdk-test-crypto-perf``.
$ git clone https://github.com/intel/intel-device-plugins-for-kubernetes.git
$ cd demo
$ ./build-image.sh crypto-perf
In the pod specification file, add the container resource request and
limit.
This command produces a Docker image named ``crypto-perf``.
For example, use ``qat.intel.com/generic: <number of devices>`` for a
container requesting Intel QAT devices.
#. Deploy a pod to run an example DPDK application named
``dpdk-test-crypto-perf``.
In the pod specification file, add the container resource request and
limit.
For example, use ``qat.intel.com/generic: <number of devices>`` for a
container requesting Intel QAT devices.
For a DPDK-based workload, you may need to add a hugepage request and limit.
For a DPDK-based workload, you may need to add a hugepage request and limit.
::
::
$ kubectl apply -k deployments/qat_dpdk_app/base/
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
qat-dpdk 1/1 Running 0 27m
intel-qat-plugin-5zgvb 1/1 Running 0 3h
$ kubectl apply -k deployments/qat_dpdk_app/base/
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
qat-dpdk 1/1 Running 0 27m
intel-qat-plugin-5zgvb 1/1 Running 0 3h
.. Note::
.. Note::
The deployment example above uses kustomize, which is a tool supported by
kubectl since the Kubernetes v1.14 release.
The deployment example above uses kustomize, which is a tool supported by
kubectl since the Kubernetes v1.14 release.
#. Manually execute the ``dpdk-test-crypto-perf`` application to review the
logs.
#. Manually execute the ``dpdk-test-crypto-perf`` application to review the
logs.
::
::
$ kubectl exec -it qat-dpdk bash
$ kubectl exec -it qat-dpdk bash
$ ./dpdk-test-crypto-perf -l 6-7 -w $QAT1 -- --ptest throughput --\
devtype crypto_qat --optype cipher-only --cipher-algo aes-cbc --cipher-op \
encrypt --cipher-key-sz 16 --total-ops 10000000 --burst-sz 32 --buffer-sz 64
$ ./dpdk-test-crypto-perf -l 6-7 -w $QAT1 -- --ptest throughput --\
devtype crypto_qat --optype cipher-only --cipher-algo aes-cbc --cipher-op \
encrypt --cipher-key-sz 16 --total-ops 10000000 --burst-sz 32 --buffer-sz 64