在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):intel/intel-device-plugins-for-kubernetes开源软件地址(OpenSource Url):https://github.com/intel/intel-device-plugins-for-kubernetes开源编程语言(OpenSource Language):Go 89.2%开源软件介绍(OpenSource Introduction):OverviewThis repository contains a framework for developing plugins for the Kubernetes device plugins framework, along with a number of device plugin implementations utilizing that framework. The v0.24 release is the latest feature release with its documentation available here. Table of Contents
PrerequisitesPrerequisites for building and running these device plugins include:
PluginsThe below sections detail existing plugins developed using the framework. GPU Device PluginThe GPU device plugin provides access to discrete (Intel® Iris® Xe MAX) and integrated GPU HW device files. The demo subdirectory contains both a GPU plugin demo video
and an OpenCL sample deployment ( FPGA Device PluginThe FPGA device plugin supports FPGA passthrough for the following hardware:
The FPGA plugin comes as three parts.
Refer to each individual sub-components documentation for more details. Brief overviews of the sub-components are below. The demo subdirectory contains a video showing deployment and use of the FPGA plugin. Sources relating to the demo can be found in the opae-nlb-demo subdirectory. Device PluginThe FPGA device plugin is responsible for
discovering and reporting FPGA devices to Admission ControllerThe FPGA admission controller webhook is responsible for performing mapping from user-friendly function IDs to the Interface ID and Bitstream ID that are required for FPGA programming. It also implements access control by namespacing FPGA configuration information. CRI-O Prestart HookThe FPGA prestart CRI-O hook performs discovery of the requested FPGA function bitstream and programs FPGA devices based on the environment variables in the workload description. QAT Device PluginThe QAT plugin supports device plugin for Intel QAT adapters, and includes code showing deployment via DPDK. The demo subdirectory includes details of both a QAT DPDK demo and a QAT OpenSSL demo. Source for the OpenSSL demo can be found in the relevant subdirectory. Details for integrating the QAT device plugin into Kata Containers can be found in the Kata Containers documentation repository. VPU Device PluginThe VPU device plugin supports Intel VCAC-A card (https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/media-analytics-vcac-a-accelerator-card-by-celestica-datasheet.pdf) the card has:
The demo subdirectory includes details of a OpenVINO deployment and use of the VPU plugin. Sources can be found in openvino-demo. SGX Device PluginThe SGX device plugin allows workloads to use Intel® Software Guard Extensions (Intel® SGX) on platforms with SGX Flexible Launch Control enabled, e.g.,:
The Intel SGX plugin comes in three parts. The demo subdirectory contains a video showing the deployment and use of the Intel SGX device plugin. Sources relating to the demo can be found in the sgx-sdk-demo and sgx-aesmd-demo subdirectories. Brief overviews of the Intel SGX sub-components are given below. device pluginThe SGX device plugin is responsible for discovering
and reporting Intel SGX device nodes to Containers requesting Intel SGX resources in the cluster should not use the device plugins resources directly. Intel SGX Admission WebhookThe Intel SGX admission webhook is responsible for performing Pod mutations based on
the The Intel SGX admission webhook is available as part of Intel Device Plugin Operator or as a standalone SGX Admission webhook image. Intel SGX EPC memory registrationThe Intel SGX EPC memory available on each node is registered as a Kubernetes extended resource using node-feature-discovery (NFD). A custom NFD source hook is installed as part of SGX device plugin operator deployment and NFD is configured to register the Intel SGX EPC memory extended resource reported by the hook. Containers requesting Intel SGX EPC resources in the cluster use
DSA Device PluginThe DSA device plugin supports acceleration using the Intel Data Streaming accelerator(DSA). DLB Device PluginThe DLB device plugin supports Intel Dynamic Load Balancer accelerator(DLB). IAA Device PluginThe IAA device plugin supports acceleration using the Intel Analytics accelerator(IAA). Device Plugins OperatorTo simplify the deployment of the device plugins, a unified device plugins operator is implemented. Currently the operator has support for the DSA, DLB, FPGA, GPU, IAA, QAT, and Intel SGX device plugins. Each device plugin has its own custom resource definition (CRD) and the corresponding controller that watches CRUD operations to those custom resources. The Device plugins operator README gives the installation and usage details. The operator is also available via operatorhub.io and on Red Hat OpenShift Container Platform. DemosThe demo subdirectory contains a number of demonstrations for a variety of the available plugins. Workload AuthorsFor workloads to get accesss to devices managed by the plugins, the
The summary of resources available via plugins in this repository is given in the table below.
DevelopersFor information on how to develop a new plugin using the framework, see the Developers Guide and the code in the device plugins pkg directory. Running E2E TestsCurrently the E2E tests require having a Kubernetes cluster already configured on the nodes with the hardware required by the device plugins. Also all the container images with the executables under test must be available in the cluster. If these two conditions are satisfied, run the tests with: $ go test -v ./test/e2e/... In case you want to run only certain tests, e.g., QAT ones, run: $ go test -v ./test/e2e/... -args -ginkgo.focus "QAT" If you need to specify paths to your custom $ go test -v ./test/e2e/... -args -kubeconfig /path/to/kubeconfig The full list of available options can be obtained with: $ go test ./test/e2e/... -args -help It is possible to run the tests which don't depend on hardware without a pre-configured Kubernetes cluster. Just make sure you have Kind installed on your host and run:
Running Controller Tests with a Local Control PlaneThe controller-runtime library provides a package for integration testing by
starting a local control plane. The package is called
envtest. The
operator uses this package for its integration testing.
Please have a look at $ KUBEBUILDER_ASSETS=${HOME}/work/kubebuilder-assets make envtest Supported Kubernetes VersionsReleases are made under the github releases area. Supported releases and matching Kubernetes versions are listed below:
Pre-built plugin imagesPre-built images of the plugins are available on the Docker hub. These images are automatically built and uploaded to the hub from the latest main branch of this repository. Release tagged images of the components are also available on the Docker hub, tagged with their release version numbers in the format x.y.z, corresponding to the branches and releases in this repository. Note: the default deployment files and operators are configured with
imagePullPolicy
LicenseAll of the source code required to build intel-device-plugins-for-kubernetes
is available under Open Source licenses. The source code files identify external Go
modules used. Binaries are distributed as container images on
DockerHub*. Those images contain license texts and source code under SecurityReporting a Potential Security Vulnerability: If you have discovered potential security vulnerability in this project, please send an e-mail to [email protected]. Encrypt sensitive information using our PGP public key. Please provide as much information as possible, including:
A member of the Intel Product Security Team will review your e-mail and contact you to collaborate on resolving the issue. For more information on how Intel works to resolve security issues, see Vulnerability Handling Guidelines. Related CodeA related Intel SRIOV network device plugin can be found in this repository Helm ChartsThe helm charts is one way of distributing Kubernetes resources of the device plugins framework. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论