Pausar/Terminar Instancias EC2 con Kubernetes KOPS (Sin perder el resto de configuración)

 

Si estas leyendo esta entrada, es por que estas interesado en pausar/terminar al menos las instancias del cluster que tienes corriendo en AWS ya sean todos los nodos o solamente un grupo de auto-scaling en concreto.

¿Te ha pasado que estabas toqueteando kubernetes sobre AWS utilizando la herramienta de kubernetes llamada kops, has dejado listo el despliegue del cluster y una vez finalizada las pruebas decides apagar/terminar las instancias para aminorar costes y resulta que a la brevedad de tiempo vuelven a levantarse automáticamente?

Pues bien, esto se debe a los grupos de auto escalado, que se auto configurando en la creación del cluster. Si ejecutamos la siguiente instrucción, podemos ver el número de instancias mínimas y máximas por cada grupo de auto-scaling de nuestro cluster:

En mi caso ambos valores son de 1 MIN 1 MAX, así que en mi cluster solo debo tener una instancia por cada grupo de auto escalado.

El siguiente paso que tendríamos que hacer para modificar estos valores en cada grupo, sería ejecutar esta instrucción:

Por cada grupo que queramos terminar.

Esta modificación se almacenará en un fichero temporal que debemos editar con el editor vim, ya que no todo el mundo esta familiarizado con él a la hora de poder editar, os dejo por aquí la manera de realizar el cambio de valores en las claves minSize maxSize.

Si pulsamos la tecla:

  • j – nos desplaza una posición hacia abajo.
  • k – nos desplaza una posición hacia arriba.
  • l – nos desplaza una posición hacia la derecha.
  • h – nos desplaza una posición hacia la izquierda.

Si posicionamos el cursor encima de un carácter, con la tecla podemos posteriormente introducir un valor que queramos y reemplazará el carácter que estaba antes. Una vez hecho esto con ambos valores, para guardar y salir del editor sería con :wq 

Ahora si volvemos a ejecutar el comando del principio, deberíamos ver como valor en las columnas MIN MAX

Ahora actualizaríamos los cambios y los llevaríamos a cabo realmente, pasandole el argumento –yes:

Y como este cambio afecta directamente al cluster en sí, necesitamos ejecutar esta última instrucción:

Ahora sí tendríamos nuestro cluster apagado, eliminando solamente las instancias EC2, pero sin perder el resto de información (VPC,Security Groups, Internet Gateways, Subnets,S3 Buckets…).

Si deseamos volver a tener operativo el cluster, tendríamos que revertir los cambios, en mi caso al menos asignar en cada grupo de auto escalado para los masters y para el grupo de los nodes.

 

Me ha parecido importante compartir esta información, ya que al principio cuando juegas con la herramienta, puedes no darte cuenta de esta característica. Y confiarte en que no te van a cobrar en AWS por uso ya que has apagado las instancias, pero la realidad es que a los pocos minutos, tienes de nuevo las instancias corriendo 🙂 si no cambias estos valores.

 

 

Autor entrada: CharlieJ

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *