Onesait Platform, Kubernetes y Rancher 2
Kubernetes es una tendencia creciente. En los últimos años, Kubernetes (k8s) ha experimentado un rápido ascenso de un pequeño proyecto de código abierto de Google al proyecto principal de la Cloud Native Computing Foundation (CNCF).
¿Que es Kubernetes?
Kubernetes es un sistema de orquestación en clúster. Fue diseñado desde cero para ser un entorno para construir aplicaciones distribuidas a partir de contenedores.
El objetivo de Kubernetes es simplificar la organización y la programación de su aplicación. Básicamente, permite no preocuparse por qué máquinas específicas en el centro de datos ejecutan componentes de la aplicación.
Además, proporciona herramientas para probar y replicar su aplicación en estas máquinas. Además de servicios para conectar su aplicación a microservicios para que cada capa de su aplicación esté separada de otras capas para que pueda escalarlas, actualizarlas y mantenerlas independientemente una de la otra.
¿Por qué utilizamos k8s?
Podemos implementar aplicaciones en cluster sin preocuparnos por servidores específicos.
Los orquestadores de contenedores son necesarios cuando tienes una aplicación de microservicios que conste de varios servicios, que además están basados en contenedores.
El orquestador de contenedores realiza muchas tareas. La primera tarea es colocar inicialmente los contenedores de la aplicación en el número de servidores necesarios para ejecutarla, teniendo en cuenta la carga de los servidores para evitar que el contenedor llegue al servidor sobrecargado, y también teniendo en cuenta los requisitos de memoria y procesador para un Contenedor particular.
Podemos escalar la aplicación horizontalmente hacia arriba y hacia abajo fácilmente.
Existe un escenario, en el que cuando una aplicación necesita ser escalada horizontalmente. Esto se consigue agregando más contenedores del mismo tipo.
El orquestador de contenedores realiza la tarea de ampliar o reducir el numero de contenedores de cada aplicación teniendo en cuenta los recursos consumidos en cada servidor de destino, así como los requisitos de recursos de cada aplicación.
En este caso, el orquestador se puede apoyar en los llamados principios de afinidad y antiafinidad. El último nos permite garantizar que, por ejemplo, todos los contenedores del mismo tipo se lanzarán en diferentes servidores físicos.
Restaura la aplicación si falla el servidor en el que se ejecutaba.
Si el servidor falla, la aplicación se debe restaurar correctamente. Los k8s pueden monitorear cada contenedor o pod de aplicación para ver si este contenedor o pod está vivo o no. Y si no, Kubernetes lo reiniciará.
En el caso de Kubernetes, podemos decir: «Quiero tener 5 contenedores del módulo quasar», y los k8s se asegurarán de que siempre tengamos 5 contenedores.
Si de repente hay menos de 5 contenedores, Kubernetes lanzará un nuevo contenedor para mantener la cantidad. Esto es importante para procesar la aplicación y predecir la carga.
K8s también supervisa el estado de los servidores en los que se ejecuta la aplicación, y si el servidor está inactivo, reprogramará todos sus contenedores en otros servidores.
Onesait Platform y k8s
Un objetivo fundacional de la plataforma es tener una estrategia “Zero Lock-in” con los proveedores, de modo que la plataforma pueda desplegarse en todas las Clouds y también On Premise.
Para cumplir con la estrategia la plataforma propone un despliegue basado en contenedores Docker y orquestada por Kubernetes, de modo que estos puedan desplegarse de forma independiente al proveedor, e integrar una plataforma CaaS que permite la gestión visual y sencilla de estos contenedores de forma independiente al proveedor.
Adicionalmente la plataforma puede usar servicios SaaS concretos de algunos proveedores y desplegarse sobre un cluster Kubernetes existente (AKS pj), siempre gestionados desde el CaaS de plataforma para conseguir la independencia de los proveedores.
Ventajas que ofrece Rancher2
Rancher es una plataforma de administración de contenedores que facilita la ejecución de Kubernetes en todas partes, cumple con los requisitos de TI y capacita a los equipos de DevOps.
Normalmente, operar con kubernetes puede ser engorroso y poco intuituvo. Rancher nos ofrece una interfaz gráfica en la que podemos monitorizar y operar los distintos componentes de plataforma facilmente.
Además, nos permite desplegar sobre el cluster un combo de Prometheus + Grafana con el que podemos visualizar y almacenar las métricas tanto de los componentes de plataforma como del cluster en general.
Pingback: Nueva distribución en el despliegue de la Onesait Platform – Onesait Platform Blog
Pingback: New distribution in the deployment of Onesait Platform – Onesait Platform Blog