Installing DKube on Amazon EKS¶
DKubeTM is a portable, end-to-end, Kubeflow-based MLOps platform that enables data scientists to develop, tune, and deploy complex models. It is based on Kubernetes, and will run on-premises and on the most popular cloud platforms. It has the same look, feel, and workflow on all of them, and migrating back and forth between providers is fast and simple.
This page provides step-by-step instructions of how to install DKube on an existing Amazon EKS system.
Cluster Configuration¶
These instructions assume that an EKS cluster has already been installed, and DKube is being installed on that cluster. The cluster should consist of one or more master nodes, and optional worker nodes.
The Master nodes coordinate the cluster
Each Worker node provides more resources, and is a way to expand the capability of the cluster
Installation Configuration¶
The installation can be run:
From the master node in the cluster, or
From a remote node that is not part of the cluster
The overall flow of installation is as follows:
Copy the required files to the installation node using Docker
Execute the platform-specific setup steps as described in this document
Install DKube using Helm
Access DKube through a browser
Prerequisites¶
The DKube installation scripts handle most of the work required to get DKube installed, including the installation of the software packages on the cluster. There are some prerequisites for each node, described below.
Node Requirements¶
Installation Node Requirements¶
The installation node has the following requirements:
Docker CE
kubectl
DKube Cluster Node Requirements¶
The DKube Cluster nodes have the following requirements:
Nodes should all have static IP addresses
All nodes must be on the same subnet
All nodes must have the same user name and ssh key
Each node on the cluster should have the following minimum resources:
16 CPU cores
64GB RAM
Storage size is dependent on the programs and datasets, and should be large enough to handle the required data, but should be at least 400GB
Access to the Cluster¶
In order to run DKube both during and after installation, a minimum level of security access must be provided from any system that needs to use the node. This includes access to the url in order to open DKube from a browser.
Protocol |
Port Range |
Source |
---|---|---|
TCP |
30002 |
Access IP |
TCP |
32222 |
Access IP |
TCP |
32223 |
Access IP |
TCP |
32323 |
Access IP |
TCP |
32224 |
Access IP |
TCP |
32225 |
Access IP |
TCP |
6443 |
Access IP |
TCP |
443 |
Access IP |
TCP |
22 |
Access IP |
All |
0-65535 |
Private Subnet |
ICMP |
0-65535 |
Access IP |
The source IP access range is in CIDR format. It consists of an IP address and mask combination. For example:
192.168.100.14/24 would allow IP addresses in the range 192.168.100.x
192.168.100.14/16 would allow IP addresses in the range 192.168.x.x
Note
The source IP address 0.0.0.0/0 can be used to allow access from any browser client. If this is used, then a firewall can be used to enable appropriate access.
Getting the DKube Files¶
The files necessary for installation are pulled from Docker, using the following commands:
Note
The docker credentials and DKube version number (x.y.z) are provided separately
This will create the folder $HOME/.dkube and copy the necessary files to the folder.
Installation Setup¶
Important
DKube should be installed with an EKS optimized AMI. This includes the necessary packages for DKube installation. This is described in more detail at https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/tkv-create-ami-from-instance.html
EKS Cluster Installation Files¶
When installing DKube on an existing EKS cluster, there are files required to set up the installation node and provide access to the EKS cluster.
The EKS preinstallation files are cloned from a GitHub repository.
Running the EKS Preinstallation Script¶
Navigate to the dkube-eks folder. Before running the preinstall script:
The [AWS] section of the terraform-eks.ini file needs to be completed to provide access to the EKS cluster
The following information needs to be completed in the terraform-eks.ini file:
aws_access_key_id
aws_secret_access_key
The rest of the fields are not used by the preinstall script, and can be left in their default state.
After running the preinstall script, the config file can be copied by including:
The region where the EKS cluster is running (e.g. us-west-2)
The EKS cluster name
The following commands will accomplish these steps:
Installing DKube¶
DKube is installed using Helm.
Detailed instructions on installing Helm are available at https://helm.sh/docs/intro/install/
The installation should be performed from the $HOME/.dkube folder.
Getting the Helm Files¶
export KUBECONFIG=kubeconfig
kubectl get nodes
helm repo add dkube-helm https://oneconvergence.github.io/dkube-helm
helm repo update
helm show values dkube-helm/dkube-deployer | sudo bash -c 'cat - > values.yaml'
Important
If the kubectl command is not successful, do not continue with the installation. This must function properly for the installation to succeed.
Important
Helm expects that the kubeconfig has a permission of 0600. If Helm provides a security error message, you can eliminate it by using the “chmod 0600 kubeconfig” command.
Express Installation¶
The Helm command for the express installation is:
Field |
Value |
---|---|
provider |
eks |
version |
Version of DKube to install |
username |
User-chosen initial login username |
password |
User-chosen initial login password |
optional.storage.node |
EKS host name |
registry.username |
Docker registry username - will be provided |
registry.password |
Docker registry password - will be provided |
The status of the installation can be viewed with the following command:
Installation Dashboard¶
The progress of the installation can be viewed from the installation dashboard. The link to the dashboard is based on the platform type.
The installation dashboard is accessible from the public IP address of the master node. The IP is of the form:
Accessing DKube¶
After the DKube installation dashboard shows that the installation has completed, the DKube UI is shown as part of the dashboard. DKube can be accessed from the public IP address of the master node. The IP is of the form:
Initial Login¶
The initial login after installation is accomplished with the username and password entered in the command line for the express installation. Authorization based on a backend mechanism is explained in the User Guide in the section “Getting Started”.