What is an Operator in K8s and why FPGAs need one in Data Centers
In Kubernetes, an operator is an application-specific controller that can help you package, deploy, and manage a Kubernetes application.
Ordinarily, you run and manage Kubernetes applications via the Kubernetes application programming interface (API) and kubectl tooling. Operators lets you extend the functionality of the Kubernetes API, enabling it to configure, create, and manage instances of applications automatically using a structured process.
Operators use the basic capabilities of Kubernetes controllers and resources, but add application-specific or domain knowledge to automate the entire lifecycle of the application it manages .
A Kubernetes operator is designed to extend the capabilities of Kubernetes, and also simplify application management. This is especially useful for stateful applications, which include persistent storage and other elements external to the application, and may require extra work to manage and maintain .
In the last few years we see more and more hardware accelerators to be utilized in data centers. Hardware accelerators can provide high throughput, low latency and better energy efficiency compared to typical processors for specific tasks.
However, the main challenge of hardware accelerators is the deployment in data centers. GPU vendors, like Nvidia, offer GPU operators that allow the easy deployment and management of GPU-based clusters.
In the domain of FPGAs there was a lack of an FPGA operator that would allow the easy deployment and management of FPGA resources in Kubernetes-based infrastructures.
InAccel FPGA operator is a cloud-native method to standardize and automate the deployment of all the necessary components for provisioning FPGA-enabled Kubernetes systems. FPGA Operator delivers a universal accelerator orchestration and monitoring layer, to automate scalability and lifecycle management of containerized FPGA applications on any Kubernetes cluster.
The FPGA operator allows cluster admins to manage their remote FPGA-powered servers the same way they manage CPU-based systems, but also regular users to target particular FPGA types and explicitly consume FPGA resources in their workloads. This makes it easy to bring up a fleet of remote systems and run accelerated applications without additional technical expertise on the ground.
Audience and Use-Cases
The FPGA Operator allows administrators of Kubernetes clusters to manage FPGA nodes just like CPU nodes in the cluster. Instead of provisioning a special OS image for FPGA nodes, administrators can rely on a standard OS image for both CPU and FPGA nodes and then rely on the FPGA Operator to provision the required software components for FPGAs.
Note that the FPGA Operator is specifically useful for scenarios where the Kubernetes cluster needs to scale quickly — for example provisioning additional FPGA nodes on the cloud and managing the lifecycle of the underlying software components.
For more information check the Helm chart of InAccel’s FPGA operator at https://artifacthub.io/packages/helm/inaccel/fpga-operator