While trying to install Kubernetes on AWS, I have come across two major ways of doing things.
The first one is to use the deploy scripts that come packaged with Kubernetes to create a Kubernetes cluster on AWS. Another one is to use CoreOS based kube-aws
tool to run a cluster.
What are the major advantages and disadvantages of the two approaches?
However, I have not been able to understand how one can resize an existing live cluster without downtime in either of the two systems.
Is there any way to deploy a resizable Kubernetes cluster on AWS using tools or scripts? Alternatively, is it even possible to resize a live cluster? If yes, how can we do that without using a tool or a script (assuming none is available).
kube-aws deploys both workers and controllers in their own ASG. Each can be scaled simply by changing the desired min/max on the ASG. kube-aws does now support multi-master.
The kube-aws
tool utilizes an autoscaling group for the worker machines. You could resize this based on CloudWatch metrics like CPU/RAM, although this isn't set up by default. To scale it manually up or down, you can use the AWS console.