fpga_plugin

command
v0.0.0-...-a3a9308 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2018 License: Apache-2.0 Imports: 17 Imported by: 0

README

Build and test Intel FPGA device plugin for Kubernetes

Dependencies

You must install and set up the following FPGA plugin modules for correct operation:

Get source code:
$ mkdir -p $GOPATH/src/github.com/intel/
$ cd $GOPATH/src/github.com/intel/
$ git clone https://github.com/intel/intel-device-plugins-for-kubernetes.git
Build FPGA device plugin:
$ cd $GOPATH/src/github.com/intel/intel-device-plugins-for-kubernetes
$ make fpga_plugin
Verify kubelet socket exists in /var/lib/kubelet/device-plugins/ directory:
$ ls /var/lib/kubelet/device-plugins/kubelet.sock
/var/lib/kubelet/device-plugins/kubelet.sock
Choose mode for FPGA device plugin

You can run the FPGA device plugin in either af or region mode.

In af mode, the device plugin exposes accelerator functions programmed onto the device as resources. Accelerator functions identified by the same AFU ID are translated to resources of the same type.

In region mode, the device plugin exposes partial reconfiguration regions as consumable resources. Regions with the same interface ID are translated to resources of the same type.

Deploy FPGA device plugin as host process for development purposes
Run FPGA device plugin in af mode
  1. Run FPGA device plugin as administrator:
$ export KUBE_CONF=/var/run/kubernetes/admin.kubeconfig # path to kubeconfig with admin's credentials
$ export NODE_NAME="<node name>" # if the node's name was overridden and differs from hostname
$ sudo -E $GOPATH/src/github.com/intel/intel-device-plugins-for-kubernetes/cmd/fpga_plugin/fpga_plugin -mode af -kubeconfig $KUBE_CONF
FPGA device plugin started in af mode
device-plugin start server at: /var/lib/kubelet/device-plugins/fpga.intel.com-af-f7df405cbd7acf7222f144b0b93acd18.sock
device-plugin registered
  1. Check if FPGA device plugin is registered on master:
$ kubectl describe node <node name> | grep fpga.intel.com
 fpga.intel.com/af-f7df405cbd7acf7222f144b0b93acd18:  1
 fpga.intel.com/af-f7df405cbd7acf7222f144b0b93acd18:  1
Run FPGA device plugin in region mode
  1. Run FPGA device plugin as administrator:
$ export KUBE_CONF=/var/run/kubernetes/admin.kubeconfig # path to kubeconfig with admin's credentials
$ export NODE_NAME="<node name>" # if the node's name was overridden and differs from hostname
$ sudo -E $GOPATH/src/github.com/intel/intel-device-plugins-for-kubernetes/cmd/fpga_plugin/fpga_plugin -mode region -kubeconfig $KUBE_CONF
FPGA device plugin started in region mode
device-plugin start server at: /var/lib/kubelet/device-plugins/fpga.intel.com-region-ce48969398f05f33946d560708be108a.sock
device-plugin registered
  1. Check if FPGA device plugin is registered on master:
$ kubectl describe node <node name> | grep fpga.intel.com
 fpga.intel.com/region-ce48969398f05f33946d560708be108a:  1
 fpga.intel.com/region-ce48969398f05f33946d560708be108a:  1
Deploy FPGA device plugin as DaemonSet
  1. To deploy the plugin in a production cluster, create a service account for the plugin:

    $ kubectl create -f deployments/fpga_plugin/fpga_plugin_service_account.yaml
    serviceaccount/intel-fpga-plugin-controller created
    clusterrole.rbac.authorization.k8s.io/node-getter created
    clusterrolebinding.rbac.authorization.k8s.io/get-nodes created
    
  2. Create the DaemonSet:

    $ kubectl create -f deployments/fpga_plugin/fpga_plugin.yaml
    daemonset.apps/intel-fpga-plugin created
    
  3. Build an image from sources:

    $ make intel-fpga-plugin
    

    This image launches fpga_plugin in af mode by default.

    You can override the mode on a per-node basis using this annotation:

    $ kubectl annotate node mynode "fpga.intel.com/device-plugin-mode=region"
    

    To use your own container image, modify the deployments/fpga_plugin/fpga_plugin.yaml file.

Next steps

Continue with FPGA admission controller webhook.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL