ElasticKube, contenedor para el manejo empresarial de Kubernetes

0
3557

En este tutorial veremos la interfaz gráfica que ofrece ElasticBox para Kubernetes, comentando sus características principales.

Índice de contenidos

1. Introducción

La interfaz que ofrece Kubernetes por defecto puede dejar mucho que desear, por lo que los chicos de ElasticBox nos traen ElasticKube, una interfaz gráfica para Kubernetes orientada a un manejo empresarial. ElasticKube es un proyecto Open-Source con licencia Apache2, al que puedes colaborar a través de github 😀

Este tutorial supone que ya tienes kubernetes instalado previamente. Si no has utilizado antes Kubernetes te recomiendo que leas el tutorial de instalación de Kubernetes en Ubuntu para la instalación y el de Primeros pasos con Kubernetes para saber los principios básicos del mismo.

2. Entorno

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil MacBook Pro Retina 15′ (2.5 Ghz Intel Core I7, 16GB DDR3).
  • Sistema Operativo: Mac OS El Capitán 10.11.2
  • Vagrant 1.8.1
  • Ansible 2.0.1.0
  • Kubernetes 1.2.0

3. Características de ElasticKube

ElasticKube trae las siguientes características:

  • Autenticación: Esta interfaz nos permite tener un control de acceso para Kubernetes, permitiendo establecer permisos y visibilidad sobre el cluster a usuarios específicos.
  • Catálogo de plantillas: ElasticKube nos ofrece un conjunto de plantillas de recursos comunes para facilitarnos el despliegue de nuestros servicios.
  • Reportes en tiempo real: Nos permite monitorizar las actividades que se realizan en los contenedores.
  • Colaboración: Permite que los desarrolladores puedan definir, desplegar y administrar aplicaciones y servicios en producción.
  • Rolling Updates: La trazabilidad y control sobre la aplicación nos permiten entregar valor constantemente.
  • Administración: Desde la interfaz se pueden desplegar servicios, manejar usuarios, namespaces, plantillas y recursos.

4. Instalación de ElasticKube

La instalación de ElasticKube es bastante sencilla. Basta con ejecutar el siguiente comando:

Shell

Para que este comando funcione sin problemas debemos asegurarnos de:

  • Tener el comando kubectl disponible desde el path. Para hacer esto, basta con añadir en el fichero .bashrc la línea:
  • Tener disponible el namespace kube-system. En Ubuntu no se crea el namespace cuando instalas Kubernetes, así que tienes que hacerlo de forma manual. En el tutorial de primeros pasos con Kubernetes explico como se crea.

Una vez tengamos los prerrequisitos, instalamos ElasticKube ejecutando el comando anterior en nuestra shell.

Ahora comprobamos a qué puerto nos mapea el servicio para que este sea accesible desde fuera del cluster. Para ello, ejecutamos el siguiente comando:

shell

El puerto que está en el apartado NodePort es el que mapeamos en nuestro fichero Vagrantfile. Actualizamos nuestra máquina virtual con la configuración recién añadida usando el comando vagrant reload.

Accedemos a ElasticKube desde el navegador con el puerto mapeado. En mi caso: localhost:30711

Comprobamos que al acceder nos pide crear una cuenta de administración y procedemos a crearla rellenando los campos que nos piden:

Tras realizar la creación de la cuenta administrador, ya tenemos creado nuestro primer usuario. Tras esto se nos muestra el panel general de la interfaz gráfica.

5. Recorrido del panel de control de ElasticKube

Hablemos de los elementos que componen la página principal, comenzando por la barra superior:

5.1. Instances

Aquí podemos ver de forma gráfica todas las instancias que tenemos actualmente en kubernetes. Dentro podemos filtrarlas para ver solo los Pods, Los Replication Controllers o los Services, así como utilizar los charts para crear nuevos elementos.

5.2. Charts

En esta pestaña tenemos todos los charts de los que nos provee la ElasticKube para realizar la creación sencilla de un servicio o replication controller sin json ni ficheros yaml; todo desde la propia interfaz 😀

5.3. Admin

Se divide en varias secciones y por defecto se muestra la configuración actual, que está compuesta de:

  • Cambiar tu hostname.
  • Ver los administradores del cluster.
  • Elegir el modo de autenticación en el sistema.
  • Cambiar el repositorio de charts para la creación de pods, servicios y replication controllers.
  • Definir una cuenta desde la que se envien correos electrónicos.

En el apartado Users tenemos información más detallada de los usuarios como la hora de creación, y podemos invitar nuevos usuarios activando el envio de emails.

En el apartado namespace tenemos el listado de los mismos, así como la posibilidad de crear nuevos. Actualmente solo hay dos namespaces: Default (que se crea por defecto cuando instalas Kubernetes) y Kube-system, que es el namespace en el que se instala ElasticKube.

En la pestaña charts obtenemos el listado de los mismos.

En el apartado instances dentro de la administración tenemos un listado de todas las instancias dentro del cluster independientemente del namespace.

6. Monitorización

Una de las cosas que más me gustan de ElasticKube es la información que nos ofrece de las instancias, mostrándonos los logs de las mismas, así como información detallada al respecto.

Por ejemplo: Si nos vamos al listado de instancias y pinchamos en el pod de elastickube-server que en mi caso va seguido del UID xjqxd accederemos a una pantalla en la que se muestra información de cada contenedor.

En esta pantalla vemos que este pod está compuesto por 4 contenedores, y si vamos a la pestaña containers podemos ver el estado de los mismos, así como los logs que está dejando cada uno de ellos. Esto está realmente bien para ver de forma centralizada el estado de tu aplicación.

7. Conclusiones

Podemos ver como esta interfaz puede ser de gran ayuda si vas a utilizar kubernetes de forma seria, ya que te ofrece mucha comodidad para ver las instancias de forma muy gráfica, a parte de que la autenticación del dashboard te permite poner una capa de seguridad entre el público y la gestión de la infraestructura de tu aplicación en la nube.

En el video de introducción de la página principal muestran los casos de uso de ElasticKube con muchos más datos 😉

8. Referencias

Dejar respuesta

Please enter your comment!
Please enter your name here