La transformación digital de los negocios pasa ahora por la modernización de la arquitectura de aplicaciones y la transición de modelos tradicionales de desarrollo monolítico a estilos de diseño y arquitecturas de software basadas en microservicios y contenedores; que se gestionan y orquestan en entornos locales o en la nube, en función de las necesidades y los objetivos de negocio.
La tecnología de contenidos se considera actualmente la solución más adecuada para cumplir con los requisitos de alta portabilidad, flexibilidad, agilidad y escalabilidad con la necesidad de desplegar aplicaciones y servicios digitales modernos, cada uno más basado en una arquitectura nativa en la nube.
Índice de temas
¿Qué es Rancher?
Si necesitas gestionar clusters de kubernetes y orquestar contenedores, Rancher es una de las opciones más recomendables para hacerlo.
Cuando hablamos de Rancher nos referimos a un software que fue creado con el objetivo de gestionar y administrar clústeres de kubernetes. Es importante aclarar que la labor de este programa se extiende además a la creación de nuevos clusters.
Creado por la compañía californiana Rancher Labs, se trata de un software de código abierto. Esto significa que cualquiera puede descargarlo, utilizarlo y modificarlo según lo que necesite.
En este artículo analizaremos todo lo que necesitas saber acerca de esta plataforma que se ha convertido en una solución de extremo a extremo para el trabajo con kubernetes.
¿Para qué sirve Rancher?
Tal como hemos adelantado, Rancher sirve para gestionar clústeres de kubernetes. En otras palabras, administra contenedores de código abierto que tienen el objetivo de gestionar aplicaciones de contenedores en entornos virtuales.
Entre sus funciones, permite importar clústeres existentes, pero además ofrece la posibilidad de trabajar con clusters personalizados o bien de implementar clusters propios.
Asimismo, mediante el uso de Rancher, es posible gestionar un grupo de nodos directamente desde la consola.
Por lo tanto, desde la misma podemos realizar restauraciones de etcd (que es donde se almacenan los datos de estado de cada cluster), copias de seguridad y actualizaciones de las versiones de kubernetes.
Por otra parte, Rancher sirve para recuperar clústeres que hayan sido degradados o a su vez para agregar o reemplazar las máquinas que ejecutan aplicaciones.
¿Cómo funciona Rancher?
Rancher funciona a través de redes creadas entre hosts. Esto quiere decir que ofrece la posibilidad de crear redes privadas que son definidas por software especialmente para cada entorno.
De esta manera, mediante las máquinas anfitrionas y la nube, la comunicación entre contenedores se vuelve segura.
A su vez, por sus propias características, Rancher posibilita que los contenedores, que son todo lo que se precisa para la ejecución de un programa, se registren como servicios de forma automática.
En el mismo sentido, Rancher también permite a sus usuarios realizar actualizaciones de los servicios de contenedores existentes. Es así como se vuelve posible la clonación de servicios y redirigir solicitudes de servicio.
Por último, algo que caracteriza este programa y su funcionamiento es que está diseñado por una variedad de usuarios ya que es un software de código abierto.
¿Cuáles son los beneficios de usar Rancher?
Si hablamos de los beneficios que este software de código abierto ofrece, debemos empezar por destacar su principal función, que es la de gestionar clústeres de kubernetes de una manera efectiva.
Por ende, si trabajas con contenedores encontrarás en Rancher una solución muy completa.
Pero, además, es sabida la dificultad que puede constituir la administración de múltiples grupos de nodos especialmente en materia de seguridad. En ese sentido, Rancher ofrece un funcionamiento que contempla todos estos desafíos que pueden surgir.
Por otro lado, este software trae consigo otros beneficios como el de permitir la definición de usuarios y asignarles permisos. A su vez, en este programa la administración de kubernetes se realiza de forma general debido a que existe la posibilidad de controlarlos de forma centralizada.
A su vez, Rancher posibilita la implementación de clusters en nubes privadas, así como también en nubes públicas de una forma rápida y segura.
Por último, Rancher permite el uso de métodos de autenticación externos, lo cual se trata de una ventaja.
¿Cómo se conecta Rancher con Kubernetes?
Para empezar a trabajar con Rancher y establecer la conexión con kubernetes no hay que valerse de un proceso demasiado complejo.
Lo primero que tenemos que hacer es instalar Rancher. Se recomienda que esto se lleve a cabo en una máquina Linux que tenga, por lo menos, 4 GB de memoria.
Posteriormente, debemos poner el contenedor en funcionamiento y a partir de allí, a través de la web, acceder a rancher.
Al acceder a la plataforma observaremos que tenemos un panel web que nos da la opción de añadir un cluster. Pues, dentro de esa función debemos presionar en la opción custom. Posteriormente, debemos elegir entre las opciones del cluster.
En este punto, cabe aclarar que Kubernetes tiene varias opciones de red CNI entre las que podemos destacar a Calico, Weave, Flannel y Canal.
Luego de las opciones del cluster es necesario agregar los nodos y determinar el rol de ellos.
Para esto necesitaremos pegar el comando en las máquinas. Así es como se comenzará a crear el cluster.
¿Cómo aprovechar al máximo las capacidades de orquestación de contenedores disponibles por Rancher?
La orquestación de contenedores es una actividad esencial a la hora de trabajar con clusters. Se trata de automatizar en gran medida las operaciones y servicios en los contenedores en los cuales se construyen, comparten y ejecutan aplicaciones.
Es necesario tener en cuenta que, en sistemas de gran escala, la gestión manual se vuelve casi imposible. Es en esos casos en donde la automatización de tareas se vuelve necesaria ya que reduce considerablemente la dificultad de la gestión.
Ahora bien, Rancher ofrece grandes facilidades para la orquestación de contenedores que de ser usadas correctamente pueden hacer más sencillo el trabajo.
Si bien el uso de una interfaz de línea de comando puede ser una opción útil para el uso de este software, en especial cuando se trata de automatizar las operaciones o de las secuencias de comando, lo cierto es que lo más sencillo es realizar la gestión desde una consola.
¿Cómo se puede desplegar un servicio en un clúster de Kubernetes utilizando Rancher?
Rancher ofrece variadas posibilidades a la hora de trabajar con kubernetes que la hacen uno de los softwares más elegidos para este ámbito.
Entre estas posibilidades se encuentra una gran variedad de servicios que permiten la creación, la escalación y la implementación de aplicaciones en contenedores.
Esto se logra a través de una serie de herramientas como la autenticación centralizada, los controles de admisión, las plantillas PSP y las plantillas de control de acceso basado en roles.
Lo cierto es que uno de los aspectos más favorables de esta plataforma es que quienes la administren y operen en ella podrán relacionarse con una interfaz sencilla de usar y que además posee todo lo necesario para el despliegue de los servicios en un cluster de Kubernetes.
Asimismo, Rancher cuenta con un proxy de autenticación que reenvía todas las llamadas de los mecanismos de comunicación de Kubernetes hacia los clusters que son gestionados por cuentas de servicio.
De esta manera, todos aquellos procesos ejecutados en un pod obtienen una identidad.
¿Qué posibilidades de integración ofrece Rancher para Flux, Helm y GitOps?
Siguiendo la línea de las características que hacen a Rancher una buena opción, o quizá la más recomendable para la gestión de kubernetes, debemos comentar que posee un catálogo de aplicaciones.
Se trata de una lista de programas que se han diseñado con el objetivo de ser ejecutados en kubernetes y que, a través de la consola, pueden ser utilizados fácilmente.
A su vez, Rancher puede ser instalado utilizando el paquete de gestión de kubernetes de Helm.
A través de esta plataforma, es posible crear despliegues y configurarlos en lugar de solo usar archivos estáticos.
Por su parte, GitOps mantiene consistentes a todos los clusters y reduce la carga administrativa cuando aumenta la escalabilidad.
¿Cómo escalar contenedores cuando utiliza Rancher y Kubernetes?
Rancher facilita la posibilidad de escalar sus contenedores a través de dos métodos.
En primer lugar, es posible hacerlo incrementando el número de pods de su carga de trabajo. De esta manera, el programa tendrá más procesos en ejecución.
Asimismo, se abrirá la posibilidad de gestionar más tráfico y habilitar otras implementaciones que no tengan tiempo de inactividad.
Por otro lado, en materia de escalabilidad, será necesario también aumentar el número de nodos en el cluster. Esto es así porque llegará un punto en el cual todos los nodos existentes hasta un momento determinado hayan alcanzado el límite de pods.
Recordemos que solo se puede gestionar un número finito de pods por cada nodo por lo que, a los fines de la expansión, el aumento de estos es inevitable.
En este aspecto, por último, hay que tener en cuenta que el aumento de nodos es oneroso. Sin embargo, incrementar los pods es totalmente gratuito.
¿Rancher opone alguna solución para tolerar los fallos en un clustering Kubernetes?
Lo cierto es que Rancher es una gran solución a la hora de trabajar con Kubernetes. La administración de múltiples clusters en variados entornos de nube hace que haya cuestiones técnicas que se dificulten. Pues es precisamente en esos casos en los que este programa es muy útil.
Además, una de las ventajas de trabajar con k8s es que, si el servidor falla, la aplicación se restaura de forma correcta. Pero, además, los kubernetes monitorean cada contenedor o pod en particular para verificar si aún están vigentes.
Por otra parte, es una realidad que los ataques contra las cadenas de suministro de contenedores están en aumento. Este es otro ámbito en el que este software fortalece la seguridad a la hora de trabajar con clusters.
Flexibilidad para implementar clústeres de Kubernetes
Al momento de decidir dónde y cómo implementar la elección de Kubernetes, Rancher puede admitir varias opciones posibles. Por ejemplo, una posibilidad es implementar cargas de trabajo de aplicaciones mediante servicios de clúster de Kubernetes administrados que están preparados para ejecutar aplicaciones en contenedores fabricados, como Google Kubernetes Engine (GKE), Amazon Elastic Container Service for Kubernetes (EKS) o Azure Kubernetes Service (AKS). ).
En este caso, Rancher se integra perfectamente en la infraestructura de gestión de GKE, EKS o AKS, y proporciona un control total sobre los diferentes recursos en la nube. Además, no es necesario aprender a utilizar tres interfaces de administración diferentes, que ofrecen una interfaz unificada y coherente del “panel de cristal único” desde el que se puede acceder a cada servicio asignado para visualizarlo y configurarlo.
Sí, por el contrario, si decide instalar, ejecutar y administrar Kubernetes en plataformas IaaS como Google Cloud, Amazon EC2, Azure o instalar Kubernetes directamente en la infraestructura de TI de la empresa, utilizando servidores bare metal o soluciones de nube privada como como VMware, Rancher tiene la capacidad de proporcionar, incluso en estos entornos, un método de instalación simplificado diseñado para minimizar la complejidad.
Cuando los clústeres de Kubernetes existen en servicios como GKE, puede que a Rancher le importe. Cuando es necesario transferir las cargas de trabajo de un proveedor de nube a otro, Rancher facilita la creación de un nuevo clúster en la nueva nube, por lo que se pueden migrar las cargas de trabajo del clúster existente.
Por Gonzalo Castillo.
Artículo publicado originalmente en 24 Ene 2023