EKS, the kubernetes built for AWS
This week I’ve created a cluster of Kubernetes 1.11.X using EKS. With this post, my idea is to speak about the pros and cons of this tool.
Is foolproof, it means that EKS very simple… in 10 minutes you can have a cluster of kubernetes runing. For this purpose, you install eksctl and run the following command:
eksctl create cluster \
— name=${NAME} — ssh-access — ssh-public-key=~/.ssh/rsa.pub \
— version=${VERSION} — vpc-cidr=${CIDR} — node-private-networking \
— node-volume-size=100 — node-volume-type=gp2 — storage-class=${BOOLEAN} — node-ami-family=${AMI} \
— node-type=${TYPE} — nodes=${NODES} — nodes-min=${MIN} — nodes-max=${MAX} \
— asg-access — tags environment=${ENVIROMENT} \
— region=${REGION} — zones=us-east-1c,us-east-1b,us-east-1a
You should replace the variables with the appropiated values. For example:
NAME: the name your cluster.
CIDR: the CIRD the you new VPC, for example 10.3.0.0/16, this create four subnets /19, two public and two private.
NODES: the number of nodes between nodes min and node max.
MIN: the number minimum of nodes.
MAX: the number max of nodes.
VERSION: the version de k8, in the moment of writing this post, EKS support 1.10 and 1.11, the major always is the ultimate stable.
AMI: EKS support two AMI family, Ubuntu and AWS AMI but dependent of the region. In the region us-east-1 only support AWS AMI.
ENVIROMENT: is the name of the tag wich identifique your cluster now on.
TYPE: type of disk, for example gp2. You can read most on type of disk in AWS documentation.
REGION: the AWS region incluster in whichyour cluster will be running.
ZONES: this is very important, is the amount of replicate for zone that want your cluster. For example: us-east-1c,us-east-1b,us-east-1a.
Ok, congratulations!. Finally you have a cluster!
But, not all that glitters is gold…
Yes, EKS is the Homer’s car !. Why do I make this analogy?.
Because you can’t modify your cluster. What’s wrong with that?. As a user of KOPS I’m looking for a solution that allows changing my plugins for networking and of DNS. On KOPS when you choose the option networking=weave, you already install the plugin. The project roadmap tells you that in the 0.2.0 version you could install “weave” plugin, but it doesn’t mention other plugins for DNS, it set to use coredns plugin by default.
Other thing that I noticed was that EKS has only two AMI, Ubuntu y AWS AMI, against six type of AMI on KOPS. This isn’t a minor problem, because if your team is working on a different technology like Centos, they will have to learn other system, and yes… you always have to optimize your AMI.
Supposedly EKS is a service with hight avaliablity. As soon as I tried this product, the disk ran out of space. Consequently the cluster changed the status to not ready and the ASG did not scaled. So the solution was to remove and create a new cluster.
Something quiet not important, the endpoint of the server is public, yes.. here, neither you can choose.
This is my experience with EKS and I wanted to shared with you. I hope you find it useful.
Thanks for your help.