Release Of A New Machine Learning Toolkit By Kubernetes: KubeFlow

Dec. 28, 2017, 11:14 a.m. By: Kirti Bakshi

KubeFlow

The Kubernetes community has now finally made the announcement of the creation of their new project called Kubeflow, that aims at providing a hand in solving some of the challenges of deploying complicated workloads.

According to the team, Kubeflow has been designed in order to make it easier to use machine learning stacks on Kubernetes and since it relies on Kubernetes to run, it can run anywhere where Kubernetes runs, therefore, making it easy to set up for all Kubernetes users thus making it truly scalable and portable.

“Kubernetes has quickly become the hybrid solution for deploying complicated workloads anywhere,” written in a post by David Aronchick and Jeremy Lewi, a PM and engineer on the Kubeflow project, “While it started with just stateless services, customers have begun to move complex workloads to the platform, taking advantage of rich APIs, reliability and performance provided by Kubernetes. One of the use cases of the same that are among the fastest growing is the use of Kubernetes as the deployment platform of choice for machine learning.”

The Kubeflow project contains JupyterHub, Tensorflow Custom Resource (CRD), and a Tensorflow Serving container, which makes it the hybrid solution, and deployment platform of choice for machine learning.

The Kubeflow repository includes the following:

  • A JupyterHub that helps in the creation and management of interactive Jupyter notebooks.

  • A Tensorflow Training Controller that can be configured in order to use CPUs or GPUs, and can also be adjusted to the size of a cluster with just a single setting

  • A TF Serving container in addition.

The Mission of Kubeflow:

The main goal that Kubeflow was created lies within is to help individuals to use ML more easily, by allowing Kubernetes to do exactly what it is great at:

  • Easy, repeatable, portable deployments on an infrastructure that is diverse.

  • Deployment and management of loosely-coupled microservices.

  • Scaling that is based on demand.

Because practitioners of ML use so many different types of tools, it is a key goal that within reason one can customize the stack to whatever the requirements are, and then let the system further take care of the other stuff. While as of now the team as started with a narrow set of technologies, they are also currently working with many different projects in order to include additional tooling.

Ultimately, to be exact, the team wants to have a set of simple manifests that provide us with an easy to use ML stack anywhere where Kubernetes is already running and can self-configure based on the cluster that it gets deployed into.

The company also believes that most Kubeflow users will be working with multiple environments and this makes ksonnet very useful as it makes very simple moving of workloads between multiple environments.

As of now, Kubernetes, currently, is trying to build up a community for this project and has thus collaborated with, Weaveworks, Red Hat & OpenShift, Canonical, and Container Solutions, and many more to do the same.

“The advancement that took place by the Kubeflow project was much needed in order to make it significantly easier to set up as well as productionize machine learning workloads on Kubernetes, and it is also anticipated that it greatly will result in the expanding of the opportunity for even more enterprises to embrace the platform,” said the vice president of product at CoreOS: Reza Shafii,. “We look forward to working with the project members in providing tight integration of Kubeflow with Tectonic, the enterprise Kubernetes platform.”

For More Information: GitHub