mirror of https://github.com/kubeflow/website.git
87 lines
3.1 KiB
Markdown
87 lines
3.1 KiB
Markdown
+++
|
|
title = "Customizing Kubeflow on AWS"
|
|
description = "Tailoring a AWS deployment of Kubeflow"
|
|
weight = 20
|
|
+++
|
|
|
|
This guide describes how to customize your deployment of Kubeflow on Amazon EKS.
|
|
Some of the steps can be done before you run the `apply platform` command, and some of them can be done before you run the `apply k8s` command. Please see the following sections for details. If you don't understand the deployment process, please see [deploy](/docs/aws/deploy) for details.
|
|
|
|
|
|
## Customizing Kubeflow
|
|
|
|
Here are the optional configuration parameters for `kfctl` on the AWS platform.
|
|
|
|
| Options | Description | Required |
|
|
|---|---|---|
|
|
| `awsClusterName` | Name of your new or existing Amazon EKS cluster | YES |
|
|
| `awsRegion` | The AWS Region to launch in | YES |
|
|
| `awsNodegroupRoleNames` | The IAM role names for your worker nodes | YES for existing clusters / No for new clusters |
|
|
|
|
|
|
### Customize your Amazon EKS cluster
|
|
|
|
Before you run `${KUBEFLOW_SRC}/scripts/kfctl.sh apply platform`, you can edit the cluster configuration file to change cluster specification before you create the cluster.
|
|
|
|
Cluster configuration is stored in `${KUBEFLOW_SRC}/${KFAPP}/aws_config/cluster_config.yaml`. Please see [eksctl](https://eksctl.io/) for configuration details.
|
|
|
|
For example, the following is a cluster manifest with one node group which has 2 `p2.xlarge` instances. You can easily enable SSH and configure a public key. All worker nodes will be in single Availability Zone.
|
|
|
|
```yaml
|
|
apiVersion: eksctl.io/v1alpha4
|
|
kind: ClusterConfig
|
|
metadata:
|
|
# AWS_CLUSTER_NAME and AWS_REGION will override `name` and `region` here.
|
|
name: kubeflow-example
|
|
region: us-west-2
|
|
version: '1.12'
|
|
# If your region has multiple availability zones, you can specify 3 of them.
|
|
#availabilityZones: ["us-west-2b", "us-west-2c", "us-west-2d"]
|
|
|
|
# NodeGroup holds all configuration attributes that are specific to a nodegroup
|
|
# You can have several node groups in your cluster.
|
|
nodeGroups:
|
|
- name: eks-gpu
|
|
instanceType: p2.xlarge
|
|
availabilityZones: ["us-west-2b"]
|
|
desiredCapacity: 2
|
|
minSize: 0
|
|
maxSize: 2
|
|
volumeSize: 30
|
|
allowSSH: true
|
|
sshPublicKeyPath: '~/.ssh/id_rsa.pub'
|
|
|
|
# Example of GPU node group
|
|
# - name: Tesla-V100
|
|
# Choose your Instance type for the node group.
|
|
# instanceType: p3.2xlarge
|
|
# GPU cluster can use single availability zone to improve network performance
|
|
# availabilityZones: ["us-west-2b"]
|
|
# Autoscaling Groups settings
|
|
# desiredCapacity: 0
|
|
# minSize: 0
|
|
# maxSize: 4
|
|
# Node Root Disk
|
|
# volumeSize: 50
|
|
# Enable SSH out side your VPC.
|
|
# allowSSH: true
|
|
# sshPublicKeyPath: '~/.ssh/id_rsa.pub'
|
|
# Customize Labels
|
|
# labels:
|
|
# 'k8s.amazonaws.com/accelerator': 'nvidia-tesla-k80'
|
|
# Setup pre-defined iam roles to node group.
|
|
# iam:
|
|
# withAddonPolicies:
|
|
# autoScaler: true
|
|
|
|
```
|
|
|
|
### Customize Private Access
|
|
Please see [this section](/docs/aws/private-access)
|
|
|
|
### Customize Logging
|
|
Please see [this section](/docs/aws/logging)
|
|
|
|
### Customize Authentication
|
|
Please see [this section](/docs/aws/authentication)
|