Elastigroup & Kubernetes – Minions On Steroids.

Stav Maor
aws
containers
docker
gcp
k8s
kubernetes
spot
spot instance

kubernetes-spotinst-ad-banner (1)

As part of our continuous efforts to bring economical computing while guaranteeing 100% availability into containerized workloads, such as Rancher, Amazon Elastic Container Service & Docker Swarm. We are excited to share our recent integration with kubernetes.io.

kubernetes-minions-ad-banner

Google Kubernetes

Kubernetes is an open source system from Google for easily managing containerized applications across multiple hosts; it provides deployment scheduling, workload and resource usage optimization, and easy scaling. Kubernetes groups your containers into logical units, called pods, to make their management and discovery much simpler.

Managing Kubernetes cluster while keeping its costs down is quite a challenge, especially when it comes to heterogeneous environments (made up from different instance types, and sizes to increase the cluster’s efficiency): choosing the right instance size and type for a specific workload, as well as utilizing Spot Instances requires some management, manual intervention, and mainly – heavy lifting of containers draining.

This is why, at Spotinst, we worked with leading k8s customers, to deliver a production grade and resilience service that will better utilize the EC2 resources within the k8s cluster; handle instance failures safely, and continuously optimize and provision the most economical underlying resources.

kubernetes-minions-ad-banner

How It Works

Kubernetes Blog

The minions cluster (Autoscaling groups) should be converted into Elastigroup.

Then, In the creation Wizard, choose Kubernetes in the 3rd parties integration, add you Master URL, the desired port, and an API token for Spotinst to use.

From Security reasons, please make sure that the k8s Master Security-Group is open specifically for the following whitelisted Spotinst servers IP Addresses 13.90.255.25/3213.90.103.164/32 13.90.101.230/32 13.90.100.43/32

  1. Spotinst Prediction algorithm and its monitoring services identify an instance failure in the k8s minions cluster.
  2. Immediately, a new Instance is being launched to replace the ‘bad’ instance. Simultaneously, Elastigroup communicates with the k8s master, and marked the ‘bad’ instance as {"spec":{"unschedulable":true}}
  3. Elastigroup sends requests to the k8s master to reschedule the running containers on different hosts in the minions cluster.

 

Try it out

If you are already a Spotinst user, you can set up the Kubernetes integration from your Elastigroup UI, or via the API.

Screen Shot 2016-08-04 at 8.08.52 AM