Amazon Elastic Kubernetes Service (EKS) es un servicio administrado para ejecutar Kubernetes en AWS sin necesidad de instalar, operar o mantener el cluster como tal o los nodos de k8s. Kubernetes es un orquestador para automatizar la implementacion, escalado y administracion de las aplicaciones en contenedores.
Este repositorio contiene una serie de ejercicios en los cuales se practica eks.
Antes de iniciar con los ejercicios necesitamos crear un cluster.
- Crear un rol el cual sera responsable de manejar los recursos de kubernetes en aws.
- Dirigirse a la consola IAM
- Seleccionar la opcion crear rol
- En la seccion caso de uso seleccionar EKS
- Por ultimo seleccionar EKS - Cluster
- Por defecto este rol ya tiene asignado una 'policy' para administrar un cluster de eks AmazonEKSClusterPolicy
- Crear el cluster
- Asignarle un nombre
training-rx
- Agregar el rol creado
- Seleccionar la vpc en la que se quiera crear el cluster
- Seleccionar las subnets en donde se deseen crear los nodos
- Se necesitan al menos dos subnets en diferente AZ
- Asignarle un nombre
-
Agregar el cluster a nuestro kube config.
- Para agregar el contexto del cluster a nuestro kube config local debemos ejecutar el siguiente comando indicando la region.
aws eks update-kubeconfig --name training-rx --region=us-east-1
- Para verificarlo podemos obtener los contextos y confirmar que tengamos el que agregamos.
- Worker Nodes: Por defecto cuando creamos un cluster lo unico que creamos es el nodo master al cual no tenemos acceso ya que este servicio es administrado, los nodos donde desplegaremos nuestros pods se llaman
worker nodes
y esos los tenemos que crear.- Crear un rol el cual manejara los node groups
- IAM Console
- Seleccionar la opcion crear rol
- Seleccionar AWS Service
- Seleccionar EC2
- Agregar las siguientes policies: AmazonEKSWorkerNodePolicy, AmazonEKS_CNI_Policy, AmazonEC2ContainerRegistryReadOnly
- Dentro del cluster, irse a la opcion de configuracion y seleccionar la opcion de
compute
.- Agregar un Node Group
- Asignarle un nombre
- Agregarle el rol previamente creado
- Elegir el tipo de instancia para los nodos
- El tamano del disco
- Cantidad de nodos
- Subnets en donde se van a crar los nodos (instancias)
- Crear un rol el cual manejara los node groups
Si obtenemos los nodos desde la linea de comandos kubectl
nos mostrara los nodos creados.
Y tenemos listo nuestro cluster para poder ejecutar deployments, pods, services, etc. 🙂
- Desplegar un contenedor que contenga tus datos y agregar un dns.
- Horizontal Pod Autoscaling
- Volumenes
- Una cuenta de aws
- aws cli
- kubectl
- Conocimiento en kubernetes