Echemos un vistazo más de cerca a dos gigantescas tecnologías de código abierto: OpenStack y Kubernetes, cómo trabajan juntas y se complementan aportando más beneficios a los consumidores de servicios.
Las opiniones sobre Kubernetes y Openstack pueden agruparse en dos direcciones principales pero opuestas. Por un lado, los que creen que OpenStack y Kubernetes son tecnologías complementarias que pueden funcionar juntas, y los que consideran que Kubernetes es el sustituto de OpenStack y viceversa. Aunque es cierto que el uso de estas herramientas en muchos casos se solapa, no significa necesariamente que una pueda sustituir fácilmente a la otra. Ayudan a resolver problemas similares, pero en diferentes capas de la pila. Así, su combinación puede ofrecer a los usuarios una automatización y escalabilidad más potentes que nunca. Sin embargo, una forma aún mejor de ver a estos gigantes del código abierto es considerar a Kubernetes como una extensión de OpenStack, una herramienta excelente para la orquestación de contenedores en el entorno de nube OpenStack.
Veamos más de cerca cómo estas tecnologías de código abierto pueden trabajar juntas y complementarse mutuamente. OpenStack es una plataforma en la nube de código abierto; ayuda a las empresas a ejecutar y gestionar sus infraestructuras en la nube. Kubernetes también es una tecnología de código abierto, el orquestador de contenedores más utilizado para ejecutar y gestionar contenedores. Una serie de componentes y soluciones de software de OpenStack ayudan a combinar eficazmente ambas tecnologías para obtener los mejores resultados.
Pero, ¿qué conseguimos exactamente al ampliar las capacidades de OpenStack con contenedores orquestados por Kubernetes?
Integración fluida
Como infraestructura abierta, OpenStack proporciona acceso basado en API a sistemas informáticos, de almacenamiento y de redes. La flexibilidad de la plataforma permite desplegar en un único sistema todos los entornos empresariales que puedan necesitar: recursos bare metal, VMs y contenedores.
Kubernetes permite a los desarrolladores centrarse en sus objetivos principales: crear software, mantenerlo y mejorarlo. La tecnología K8, impulsada por la carga de trabajo, ofrece las herramientas e interfaces adecuadas a tiempo, que se combinan con las características de la infraestructura de nube desarrollada.
Ambos conjuntos de tecnologías pueden presumir de su amplia integración en infraestructuras de nivel empresarial y de su compatibilidad con muchas otras soluciones informáticas. Por un lado está OpenStack con su tecnología tradicional, probada durante años, basada en máquinas virtuales, y por otro Kubernetes, un sistema de orquestación muy ágil y dinámico. Combinados, crean un dúo perfecto para el entorno de nube empresarial y se aportan mutuamente exactamente lo que les falta.
Los clústeres Kubernetes consumen recursos informáticos, de almacenamiento y de red de OpenStack a través de las API. Al crear una capa de abstracción para dichos recursos, OpenStack ayuda a que los sistemas en la nube sean fiables, esperables y estables.
Por ejemplo, hay una petición común de los usuarios de Kubernetes para añadir un montón de servicios estándar como el almacenamiento de objetos y bloques, integrados sin problemas con su sistema de contenedores. OpenStack ofrece herramientas prácticas para tales requisitos, ya que admite las soluciones de almacenamiento y redes más importantes para las organizaciones. Ejecutar Kubernetes con OpenStack aporta una integración funcional perfecta de los contenedores en el entorno de la nube.
Existen varias soluciones para ejecutar Kubernetes y otros marcos de aplicaciones sobre OpenStack.
Magnum, un proyecto de Openstack, es la forma más sencilla de ofrecer marcos de contenedores multiusuario y autoservicio.
Proporciona una API sencilla para desplegar clústeres totalmente gestionados respaldados por la elección de varias plataformas de aplicaciones, incluida Kubernetes.
Piedra angular de la seguridad
Siendo un potente orquestador, Kubernetes no simplifica en absoluto la gestión de aplicaciones en comparación con las aplicaciones en servidores tradicionales o VM. Las tecnologías de vanguardia aportan libertad a los procesos de desarrollo, automatizan las iteraciones y ahorran tiempo y esfuerzo de codificación. Esta tecnología relativamente nueva utiliza las prácticas de seguridad más modernas. Sin embargo, moderno y vanguardista no significan a priori la mejor decisión para las necesidades empresariales. Las mejores prácticas de seguridad, probadas durante años de uso con éxito, pueden ser destruidas por una nueva vulnerabilidad potencial liberada junto con la actualización de los componentes. Una amenaza para la seguridad del clúster y los datos almacenados en él puede proceder tanto de la red externa como del propio clúster. Una aplicación mal configurada o una vulnerabilidad pasada por alto podrían permitir a un atacante acceder al contenedor y al sistema de archivos del host.
Las normas básicas, como la auditoría periódica del sistema y la renovación de las políticas de clúster, garantizan la protección del clúster Kubernetes y disminuyen los posibles problemas. Entre las medidas de ciberseguridad esenciales para Kubernetes se encuentran las siguientes:
- reglas estrictas de cortafuegos y restricciones de acceso desde la red externa;
- gestión de cuotas y autenticación para recursos y usuarios;
- limitación de privilegios en contenedores y privilegios en contenedores;
- fuentes fiables de imágenes para evitar los riesgos de ejecutar una aplicación no segura;
- Supervisión de registros y auditoría periódica de la seguridad del clúster para detectar vulnerabilidades conocidas en modo automático y eliminarlas a tiempo.
Instalar y establecer la seguridad de una vez y para siempre es un sueño deseable pero imposible.
En un entorno de nube en constante cambio, surgen nuevas debilidades y amenazas.
Las organizaciones deben considerar que ejecutar Kubernetes sobre bare-metal conlleva un mayor riesgo de amenaza de fuga de seguridad.
Si el intruso se encuentra directamente en el host, como operador, tienes un problema enorme, ya que todos los usuarios que comparten el mismo núcleo están comprometidos.
Por otro lado, OpenStack puede proporcionar una plataforma unificada en la nube para orquestar máquinas virtuales, contenedores y recursos informáticos de hardware, manteniendo la seguridad de los clústeres y de todo el sistema en un nivel alto.
Para implantar y gestionar una plataforma de este tipo, una empresa necesita un equipo experimentado de profesionales bastante caros o la solución de software adecuada con eficacia y seguridad demostradas.
Desarrollo de aplicaciones más rápido
Kubernetes obsequia a los desarrolladores con un asistente para la gestión rápida e indolora de muchos contenedores con aplicaciones. OpenStack crea la atmósfera para que esa magia se produzca sin retrasos ni errores. La creciente demanda de servicios bajo demanda y de acceso en cualquier momento convierte a K8 y OpenStack en aliados perfectos para satisfacer las necesidades de estos usuarios. Las ventajas varían desde una mayor portabilidad de las aplicaciones hasta la reducción del tiempo de desarrollo y la mejora de la estabilidad de las aplicaciones. Ejecutando juntos Kubernetes y OpenStack, se puede encontrar, identificar y utilizar al instante el fragmento de código necesario. Ahorra horas de codificación y búsqueda. Y la pereza inteligente, como sabes, es el mejor motor para el progreso.
Los desarrolladores utilizan ampliamente Kubernetes debido a sus funcionalidades altamente demandadas, que hacen que la tecnología sea ideal para entregar aplicaciones:
- Como aislados los contenedores permiten desplegar varias aplicaciones completamente distintas en una única máquina virtual o bare metal sin que haya conflicto entre ellas.
- El uso de pods en un clúster Kubernetes puede ejecutar un único contenedor o varios contenedores si necesitan trabajar juntos. Para crear y mantener dentro del grupo componentes de la aplicación, un pod encapsula una aplicación compuesta por varios contenedores co-ubicados que están estrechamente conectados y necesitan compartir recursos.
- La tecnología de código abierto Kubernetes ejecuta cargas de trabajo en contenedores en producción con facilidad de mantenimientorespaldada por las prácticas constantes de la comunidad.
Hoy en día nadie duda de las ventajas de las aplicaciones en contenedores, pero sigue habiendo debates sobre las plataformas anfitrionas para servirlas.
Según muchas encuestas recientes, la mayoría de los desarrolladores eligen Kubernetes como la plataforma número 1 para la gestión de contenedores.
Sin embargo, si quieres sacar más partido de las tecnologías Kubernetes y OpenStack y aumentar la productividad empresarial, el ahorro de tiempo de desarrollo y la portabilidad de las aplicaciones, deberías poner en marcha juntos el destacado tándem.
Autoescalabilidad
Mientras que las aplicaciones tradicionales requieren un hardware mayor para escalar (escalado vertical), las aplicaciones basadas en la nube pueden funcionar con un hardware discreto (escalado horizontal). Para cumplir estos requisitos, OpenStack está diseñado para ser escalable horizontalmente. Se adquieren más servidores y se instalan servicios configurados de forma idéntica, en lugar de cambiar a servidores más grandes. El escalado horizontal de OpenStack es un gran escenario en el que Kubernetes puede añadir más flexibilidad.
Una de las características más potentes de Kubernetes es el autoescalado, el proceso automatizado que, de otro modo, requeriría un gran esfuerzo humano si se hiciera manualmente. Por el momento, Kubernetes dispone de tres métodos de autoescalado: escalado horizontal y vertical de pods, y escalado de clusters.
El autoescalado es esencial en un entorno de nube privada; sin él, cuando cambian las condiciones, tienes que aprovisionar recursos y luego reducirlos. El autoescalado de Kubernetes ayuda a optimizar los recursos aumentando automáticamente el número de nodos y pods del clúster si se demandan más recursos, y volviendo a ajustar a menos nodos y pods para ahorrarlos.
Escalar tu nube privada OpenStack con Kubernetes te ayuda a disfrutar de funciones adicionales.
Los recursos pueden escalarse tanto horizontal como verticalmente de forma eficiente.
Duplica las ventajas con FishOS
Años de experiencia han permitido al equipo de Sardina convertirse en expertos en la creación de entornos de nube privada basados en OpenStack. También ofrecemos una integración fluida de Kubernetes con FishOS para proporcionar a los clientes herramientas de orquestación de contenedores. Garantizando funciones como rollouts y rollbacks automatizados, alta disponibilidad, clústeres heterogéneos, orquestación del almacenamiento y autocuración, integramos plenamente Kubernetes en el entorno OpenStack para proporcionar todas sus capacidades.
FishOS puede ejecutar Kubernetes cumpliendo las pruebas de certificación oficiales tanto en máquinas virtuales como en servidores de metal desnudo. Pero una cosa es conseguir que Kubernetes funcione; otra completamente distinta es mantener el sistema escalable, fiable, eficiente y rentable. Los valores clave de FishOS residen en estos aspectos críticos del funcionamiento en nubes privadas. FishOS permite a los operadores de las empresas proporcionar fácilmente entornos Kubernetes multiusuario con garantías de seguridad probadas, y ayuda a los desarrolladores a ofrecer aplicaciones de forma más rápida y sencilla. Los clientes de Sardina también pueden beneficiarse de un almacenamiento de bloques persistente, maduro, probado y contrastado, almacenamiento definido por software y redes definidas por software.
Tiene sentido ejecutar clústeres Kubernetes dentro de máquinas virtuales en grandes organizaciones con las divisiones de operador y consumidor separadas. Esto permite a la organización beneficiarse de la fuerte segregación de seguridad de las máquinas virtuales, y de la fiabilidad y resistencia que ofrecen. OpenStack, por su parte, es capaz de atender a Kubernetes también en nodos bare-metal.
Los beneficios de combinar las tecnologías OpenStack y Kubernetes son, con mucho, un argumento más evidente que utilizarlas en solitario. No es de extrañar que la Fundación OpenStack se comprometa a garantizar que las tecnologías emergentes puedan incorporarse y utilizarse dentro de OpenStack, y los contenedores son un ejemplo real de ese compromiso. OpenStack ha aprovechado su diseño y una gran comunidad para integrar tecnologías de contenedores a distintos niveles. Utilizando Kubernetes en un entorno de nube OpenStack, una organización puede duplicar los beneficios. Dos gigantes del código abierto trabajando juntos pueden mostrar mejores resultados en seguridad, resistencia y escalabilidad, permitiendo un desarrollo más rápido de las aplicaciones y la entrega de innovaciones en infraestructura.


