Note: the --topology private, --networking calico and --bastion flags which means that the cluster will be created using private subnets in a VPC, using the calico network driver (the most common one) and for management access, we will use the bastion server to access the worker nodes.

Note: If the AWS account has EC2 Classic the product needs to be configured in the kops create cluster script as Linux/UNIX (Amazon VPC) since it’s not the default. To do so, add the line --spotinst-product "Linux/UNIX (Amazon VPC)" \ to01-create.sh

Optional – In order to extract the config to a YML file, run the following command:

Validate the cluster

./02-validate.sh

The Elastigroup Controller

Elastigroup will work with a designated pod inside your Kubernetes cluster that will report constant updates about the clusters’ condition via a one-way link. Using that information, the Elastigroup will scale the cluster up or down according to the overall nodes utilization and your pods’ needs. In order to create this connection KOPS will install a controller on each Kubernetes cluster it launches. You can read more about the Kubernetes controller here.

Install the UI dashboard

$ ./03-dashboard.sh
serviceaccount "kubernetes-dashboard" created
clusterrolebinding "kubernetes-dashboard" created
deployment "kubernetes-dashboard" created
service "kubernetes-dashboard" created
$ ./04-get-password.sh
Using cluster from kubectl context: amiram.ek8s.com
KcYyrzzzZZZZzzzzZZZZZoKx9fy