kubeflow anywhere - nvidia · engineering manager, canonical gtc 2019 - s9515. zero to kubeflow 01...

22
Kubeflow Anywhere Up and Running with Tim Van Steenburgh Engineering Manager, Canonical GTC 2019 - S9515

Upload: others

Post on 10-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Kubeflow AnywhereUp and Running with

Tim Van Steenburgh

Engineering Manager, Canonical

GTC 2019 - S9515

Page 2: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Zero to Kubeflow

01 Provision hardware. Physical or virtual. GPUs optional.

02 Deploy Kubernetes. Configure for GPUs.

03 Deploy Kubeflow.

Page 3: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

On laptop and desktop... ...on-premise server infrastructure...

...and the cloud.

Page 4: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Demo Material

Instructionshttps://jujucharms.com/u/kubeflow-charmers/kubeflow/

Need help?http://slack.kubernetes.io/

#cdk

#microk8s

Page 5: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Kubeflow on public cloud

Page 6: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Deploy KubernetesKubeflow on public cloud

Page 7: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

# create your k8s cluster

sudo snap install conjure-up --classic

conjure-up kubernetes

# after conjure-up finishes...

watch -c juju status --color

kubectl cluster-info

Deploy Kubernetes Cluster

Page 8: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Add and enable GPUsKubeflow on public cloud

Page 9: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

# add gpu machine and make it a k8s node

juju add-machine --constraints instance-type=p2.xlarge

juju add-unit kubernetes-worker --to <machine>

# k8s is aware of the gpu

kubectl get nodes -L gpu

kubectl get ds --all-namespaces

Add and Enable GPU

Page 10: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Deploy KubeflowKubeflow on public cloud

Page 11: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

juju add-k8s cdk

juju add-model kubeflow cdk

# create default storage class

kubectl apply -f https://bit.ly/2ubqfcg

juju deploy kubeflow

juju config kubeflow-ambassador \ juju-external-hostname=<node-ip>.xip.io

juju expose kubeflow-ambassador

Deploy Kubeflow

Page 12: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Accessing the Kubeflow dashboards

http://<node-ip>.xip.io/hub/ (Jupyterhub)

http://<node-ip>.xip.io/tfjobs/ui/ (TF Job Dashboard)

Submitting a TensorFlow job to use the GPU

kubectl apply -n kubeflow -f https://bit.ly/2FmA1xF

Using Kubeflow

Page 13: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Kubeflow on a laptop

Page 14: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Deploy KubernetesKubeflow on a laptop

Page 15: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

# not on Linux? launch Ubuntu VM...

multipass launch ubuntu

multipass shell <vm-name>

# ...then install Juju and MicroK8s

snap install juju --classic --edge

snap install microk8s --classic

microk8s.status --wait-ready

Deploy Single-node Kubernetes

Page 16: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Enable GPU in KubernetesKubeflow on a laptop

Page 17: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

# ensure gpu drivers are installed...

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

sudo apt install nvidia-driver-418

sudo reboot now

# ...then enable gpu support in MicroK8s

microk8s.enable gpu

Enable GPU

Page 18: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Deploy KubeflowKubeflow on a laptop

Page 19: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

microk8s.enable ingress storage

microk8s.config | juju add-k8s microk8s

juju bootstrap microk8s

juju add-model kubeflow

juju deploy kubeflow

juju config kubeflow-ambassador \ juju-external-hostname=<laptop-ip>.xip.io

juju expose kubeflow-ambassador

Deploy Kubeflow

Page 20: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Accessing the Kubeflow dashboards

http://<laptop-ip>.xip.io/hub/ (Jupyterhub)

http://<laptop-ip>.xip.io/tfjobs/ui/ (TF Job Dashboard)

Submitting a TensorFlow job to use the GPU

kubectl apply -n kubeflow -f https://bit.ly/2FmA1xF

Using Kubeflow

Page 21: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

To learn more...

Snaps: https://snapcraft.io/

Multipass: https://github.com/CanonicalLtd/multipass

MicroK8s: https://microk8s.io

Juju: https://jujucharms.com/

Charmed Kubernetes: https://www.ubuntu.com/kubernetes

Page 22: Kubeflow Anywhere - Nvidia · Engineering Manager, Canonical GTC 2019 - S9515. Zero to Kubeflow 01 Provision hardware. Physical or virtual. GPUs optional. 02 Deploy Kubernetes. Configure

Thank you. Questions?