We provide an out-of-the-box Charmed Kubeflow (CKF) solution on AWS. The solution is packaged as an AWS CloudFormation template. The template provisions an EC2 instance, runs a MicroK8s cluster on this instance and deploys CKF to the cluster.
Contents:
- Install Kubeflow with AWS CloudFormation template
- Fill in the form
- Enable SSH to the instance
- Access the dashboard
Install Kubeflow with AWS CloudFormation template
Clone the kubeflow-aws-appliance repository for the CloudFormation source code.
Log in to the AWS console. Switch to the US East 1 region.
The CloudFormation template provided will only work in the US East 1 region. There is an open issue to address this.
Head to the CloudFormation service and upload the template file: Create stack > Template is ready > Upload a template file > Choose File > cf_kubeflow_single_instance.yaml
After the template file is loaded, click Next.
Fill in the form
By default the template provides reasonable defaults but you still need to fill the stack name, KeyPair and Password fields.
If you are creating multiple stacks simultaneously using this template, then you must specify a unique AppName
for each one. There is an open issue to address this.
See more: The AWS Kubeflow CloudFormation form
After filling the Parameters, click Next.
You can leave the options as they are and click Next.
At the very end, there is a section that starts with The following resource(s) require capabilities. Tick the “I acknowledge…” box. Then click Submit. Your form is now submitted.
Wait until the stack goes to the green CREATE_COMPLETE status.
Enable SSH to the instance
By default, the ssh
port for the security group connected with the EC2 instance is disabled. Enable ssh
to the instance as follows by adding an inbound rule to the security group. See AWS documentation authorizing access for more detailed steps.
Now you should be able to ssh
with the key you provided in the form.
$ ssh -i <key-pair>.pem -D 9999 ubuntu@<ec2-ip>
Waiting for deployment
After deployment you need to wait until Kubeflow is ready. The whole setup takes around 40 minutes. You can ssh into the instance and run:
juju status --watch 5s
Wait until all listed units are in Active state.
Access the dashboard
Please note that an internet connection is required in order to deploy the product. The following components are downloaded as part of the bundle: Notebook, Katib, KServe, Pipeline, Tensorboard. This AMI requires an ongoing internet connection, in order to have all components of the bundle correctly. The dashboard access needs network proxy changes. The bundle components are subject to changes at any update.