Skip to content

Latest commit

 

History

History
53 lines (48 loc) · 3.64 KB

prerequisites.md

File metadata and controls

53 lines (48 loc) · 3.64 KB

Prerequisites

This guide assumes that you have:

  1. Installed the following tools on the client machine

    • AWS CLI - A command line tool for interacting with AWS services.
    • eksctl - A command line tool for working with EKS clusters.
    • kubectl - A command line tool for working with Kubernetes clusters.
    • yq - A command line tool for YAML processing. (For Linux environments, use the wget plain binary installation)
    • jq - A command line tool for processing JSON.
    • kustomize version 3.2.0 - A command line tool to customize Kubernetes objects through a kustomization file.
      • ⚠️ Kubeflow is not compatible with the latest versions of of kustomize 4.x. This is due to changes in the order resources are sorted and printed. Please see kubernetes-sigs/kustomize#3794 and kubeflow/manifests#1797. We know this is not ideal and are working with the upstream kustomize team to add support for the latest versions of kustomize as soon as we can.
    • python - A programming language used for automated installation scripts.
    • pip - A package installer for python.
  2. Creating an EKS cluster

    • If you do not have an existing cluster, run the following command to create an EKS cluster. More details about cluster creation via eksctl can be found here.

    • Various controllers in Kubeflow deployment use IAM roles for service accounts(IRSA). An OIDC provider must exist for your cluster to use IRSA.

    • Substitute values for the CLUSTER_NAME and CLUSTER_REGION in the script below

      export CLUSTER_NAME=$CLUSTER_NAME
      export CLUSTER_REGION=$CLUSTER_REGION
      
    • Run the following command to create an EKS Cluster

      eksctl create cluster \
      --name ${CLUSTER_NAME} \
      --version 1.20 \
      --region ${CLUSTER_REGION} \
      --nodegroup-name linux-nodes \
      --node-type m5.xlarge \
      --nodes 5 \
      --nodes-min 5 \
      --nodes-max 10 \
      --managed \
      --with-oidc
      
    • Note: If you are using an existing cluster, Create an OIDC provider and associate it with for your EKS cluster by running the following command:

      eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \
      --region ${CLUSTER_REGION} --approve
      
  3. Clone the awslabs/kubeflow-manifest repo, kubeflow/manifests repo and checkout the release branches.

    • Substitute the value for KUBEFLOW_RELEASE_VERSION(e.g. v1.4.1) and AWS_RELEASE_VERSION(e.g. v1.4.1-aws-b1.0.0) with the tag or branch you want to use below. Read more about releases and versioning policy if you are unsure about what these values should be.
      export KUBEFLOW_RELEASE_VERSION=<>
      export AWS_RELEASE_VERSION=<>
      git clone https://github.com/awslabs/kubeflow-manifests.git && cd kubeflow-manifests
      git checkout ${AWS_RELEASE_VERSION}
      git clone --branch ${KUBEFLOW_RELEASE_VERSION} https://github.com/kubeflow/manifests.git upstream