Kubeflow

  • Kubeflow Charmers | bundle
  • Cloud
Channel Revision Published
latest/candidate 294 24 Jan 2022
latest/beta 430 30 Aug 2024
latest/edge 423 26 Jul 2024
1.9/stable 432 03 Dec 2024
1.9/beta 420 19 Jul 2024
1.9/edge 431 03 Dec 2024
1.8/stable 414 22 Nov 2023
1.8/beta 411 22 Nov 2023
1.8/edge 413 22 Nov 2023
1.7/stable 409 27 Oct 2023
1.7/beta 408 27 Oct 2023
1.7/edge 407 27 Oct 2023
juju deploy kubeflow --channel 1.9/stable
Show information

Platform:

This guide describes how to install Charmed Kubeflow (CKF) on AWS Elastic Kubernetes Service (EKS).

You will spin up an EKS cluster on AWS cloud using the Amazon EKS Command Line Interface (CLI), eksctl, on your local machine. Then, you will interact with the cluster and deploy CKF using kubectl and Juju.

Requirements

If you use IAM credentials for eksctl authentication, make sure they meet these minimum IAM policies.

Deploy EKS cluster

First, clone the following repository containing the YAML file used to create the EKS cluster:

git clone https://github.com/canonical/kubeflow-examples.git
cd kubeflow-examples/eks-cluster-setup

Configure the deployment through the YAML file. The configuration set in the YAML file above provides the minimum requirements for deploying CKF:

  • region: the cluster is deployed by default to eu-central-1 zone. Edit metadata.region and availabilityZones according to your needs.
  • ssh key: edit managedNodeGroups[0].ssh.publicKeyName with your key pair name to enable SSH access into the new EC2 instances.
  • instance type: the cluster is deployed with EC2 instances of type t2.2xlarge for worker nodes, according to the managedNodeGroups[0].instanceType field. See Instance types for more information.
  • k8s version: the cluster uses Kubernetes (K8s) 1.24 by default. See Supported versions for more details about compatibility between CKF, K8s and Juju.
  • worker nodes: the cluster has two worker nodes. Edit maxSize and minSize under managedNodeGroups[0] according to your needs.
  • volume size: each worker node has gp2/gp3 disk of size 100 Gb. Edit managedNodeGroups[0].volumeSize for a different configuration.

You can now deploy the cluster as follows:

eksctl create cluster -f cluster.yaml

Deployment will take some time, up to 20 minutes.

Note that the deployment incurs charges for every hour the cluster is running.

Verify access to the cluster

Check the access to the cluster as follows:

kubectl get nodes

See Creating a kubeconfig file in case the command above does not return the expected node ouptut.

Set up Juju

  1. Install Juju:
sudo snap install juju --channel=3.4/stable
  1. Add your EKS cluster as a cloud to Juju:
/snap/juju/current/bin/juju add-k8s eks --client
  1. Bootstrap a Juju controller:
juju bootstrap eks eks-controller

See Get started with Juju for more details.

Deploy CKF

To deploy CKF and access its dashboard, follow the steps provided in the general installation guide from creating the kubeflow model section.

Clean up resources

See Delete a cluster for information about removing the EKS cluster and related resources.

The procedure above does not always delete the volumes that have been created during the cluster deployment. In that case, you can delete them manually.

To clean up Juju resources, run the following commands:

juju unregister eks-controller
juju remove-cloud eks --client

Help improve this document in the forum (guidelines). Last updated 14 hours ago.