/zero-to-inference-kubeflow

This repository outlines deploying a local Kubeflow v1.3 instance on microk8s and deploying a simple MNIST classifier using KFServing.

Primary LanguagePython

Zero to Inference with Kubeflow

Getting Started

This repository houses all of the tools, utilities, and example pipeline implementations for exploring using Kubeflow within their data science / machine learning projects.

Please follow the README's that are provided for each of the Components below.

Installation Flow

The graph below provides the high level overview of the process that should be followed.

Install Microk8s --> Deploy Kubeflow --> Deploy Pipeline --> Create Notebook Server --> Upload Notebook and Data --> Evaluate New Inputs

Components

Microk8s

The microk8s directory contains a README of all of the necessary commands that will need to be issued to install microk8s on your local development enivornment

Kubeflow

The kubeflow directory contains a README of all of the necessary commands that will need to be issued to install Kubeflow on your local microk8s installation.

NOTE: I've made some edits to the default manifests that are provided with Kubeflow to accomodate some of the intricacies of a local deployment of the stack. Please be aware that these manifests are not what are provided on the main repo v1.3 branch.

Kubeflow Pipeline

Contained in the pipeline directory is a simple Kubeflow Pipeline that will train an MNIST classifier and deploy the trained model using KFServing local to the Kubeflow installation.

Notebook

Contained in the notebooks directory is a notebook we can use for verifying the deployment of our model. This is done because of the complexity of exposing services external to microk8s (kubernetes) that is outside of the scope of this tutorial.

Data

Contained in the data directory are some images we can classify that will allow us to test the functionality of the model we've deployed.

These images will need to be uploaded to the notebook server once it has been deployed.

Directory Structure

This directory structure tries to mirror the structure used within the Cookiecutter Data Science project.