Resumen
El cliente Java™ para Kubernetes es una biblioteca que permite utilizar el lenguaje de programación Java para interactuar con Kubernetes. Está diseñada en torno a la API de REST de Kubernetes y ofrece acceso mediante programación a la plataforma. Además, permite crear, modificar y eliminar varios recursos en un clúster de Kubernetes, ajustar las implementaciones, ejecutar los comandos y supervisar los eventos.
Kubernetes es una plataforma open source para la organización de contenedores que automatiza la implementación, la gestión y el ajuste de las aplicaciones que se alojan en ellos. Sus bibliotecas cliente se ocupan de tareas como la autenticación y facilitan el proceso de desarrollo de las aplicaciones que utilizan su API.
El marco cliente más antiguo y más utilizado es el cliente Go oficial para Kubernetes, llamado client-go, que se utiliza también en otras distribuciones y plataformas, como Red Hat® OpenShift. Además, hay otros clientes conocidos, como las bibliotecas cliente oficiales y comunitarias para diversos lenguajes de programación. Si bien hay varios clientes Java de la comunidad para Kubernetes, el cliente Java oficial es la biblioteca a cargo del grupo API Machinery Special Interest Group de Kubernetes.
Motivos para usar el cliente Java para Kubernetes
En los últimos años, los desarrolladores dejaron atrás las arquitecturas monolíticas para dedicarse a desarrollar aplicaciones más versátiles en la nube. Muchas empresas que desean modernizar las aplicaciones Java heredadas deciden adoptar un modelo de desarrollo en la nube. La versión de Java para la nube, que es un aspecto fundamental de la modernización de las aplicaciones Java, suele incluir el uso de una plataforma de organización de contenedores como Kubernetes para gestionar, implementar y ajustar las aplicaciones de manera eficiente.
Aunque las aplicaciones en contenedores no siempre necesitan comunicarse con la API de Kubernetes, muchas veces deben recurrir a ella para poder realizar una tarea determinada. Si elige gestionar los clústeres por su propia cuenta, en lugar de utilizar una plataforma como Red Hat OpenShift y un elemento como Red Hat Advanced Cluster Management for Kubernetes, puede utilizar el cliente Java oficial para interactuar con la API de Kubernetes en los siguientes casos prácticos:
- La gestión de aplicaciones
- El ajuste de la capacidad y el ajuste automático
- La supervisión, el envío de alertas y el registro
- La configuración de la implementación continua
- La extensión de la API de Kubernetes con operadores personalizados
- La administración de clústeres
- La gestión de la nube híbrida
Kubernetes y muchas de sus herramientas y bibliotecas se crearon con Golang. Por eso, si los desarrolladores de la empresa no tienen experiencia con este lenguaje, pueden necesitar más capacitaciones y recursos para adoptar el desarrollo en la nube con Kubernetes. En el caso de las empresas que poseen aplicaciones Java o cuyos desarrolladores tienen experiencia en este lenguaje y utilizan el cliente Java para Kubernetes, no es necesario aprender un lenguaje de programación nuevo, lo cual simplifica la adopción del desarrollo en la nube.
Recursos de Red Hat
Las alternativas al cliente Java para Kubernetes
Es posible que el cliente Java para Kubernetes parezca la mejor opción para los desarrolladores de Java, pero existen muchas otras opciones disponibles para operar y gestionar clústeres de Kubernetes.
La API de REST de Kubernetes y kubectl
La API de REST de Kubernetes es el front end del plano de control de este sistema y se utiliza para diseñar, configurar y gestionar sus clústeres. Puede utilizar kubectl, la herramienta de la línea de comandos de Kubernetes, para interactuar con la API, solicitarla y gestionar los recursos de la plataforma. También es posible acceder a la API de REST de manera directa con un cliente HTTP, como cURL o Wget.
Cliente Java Fabric8
El cliente Java Fabric8 es una biblioteca cliente mantenida por la comunidad y la biblioteca Java para Kubernetes más antigua. Se diferencia del cliente Java oficial porque ofrece un lenguaje específico de dominio (DSL) sólido, varias extensiones y soporte para los recursos personalizados sin necesidad de agregar otras dependencias.
Operadores de Kubernetes
Los operadores de Kubernetes son controladores personalizados y específicos de cada aplicación que utilizan la API de Kubernetes y las herramientas de kubectl para diseñar, configurar y gestionar las aplicaciones. A diferencia de la mayoría de los controladores, los operadores de Kubernetes incluyen conocimiento específico de las aplicaciones o los dominios para automatizar todo el ciclo de vida de las aplicaciones en contenedores, lo cual permite que los desarrolladores implementen y ajusten con mayor facilidad los procesos de los que estas dependen.
Otras bibliotecas de terceros
Si bien los clientes Java oficiales y Fabric8 son las bibliotecas Java para Kubernetes más utilizadas, no son las únicas opciones disponibles. Otros clientes Java son Amdatu Labs para el marco Java OSGi y YAKC para Kubernetes.
También es posible que los desarrolladores con experiencia en otros lenguajes de programación elijan un cliente de un lenguaje distinto que se adapte mejor a sus necesidades. Hay otras bibliotecas oficiales y de terceros para varios lenguajes, como C, dotnet, Haskell, JavaScript, Perl, Python y Ruby, entre otros.
Red Hat le ofrece una solución
Kubernetes es una plataforma open source para la organización de contenedores muy potente, pero carece de funciones para integrar otros elementos que son esenciales para desarrollar aplicaciones con mayor rapidez, como las redes, el almacenamiento, la supervisión y la integración y distribución continuas (CI/CD). Red Hat OpenShift utiliza Kubernetes como base y proporciona una plataforma empresarial para la organización de contenedores, a la vez que incorpora todos estos elementos y agiliza la distribución de las aplicaciones en contenedores.
Puede utilizar el cliente Java para Kubernetes oficial y las bibliotecas de dicha plataforma, pero también hay otros clientes que le permiten aprovechar los recursos adicionales y los extremos de las API que se agregan con Red Hat OpenShift. Al igual que los clientes de Kubernetes, las bibliotecas cliente de las API de REST de OpenShift se encuentran disponibles tanto para Java como para muchos otros lenguajes de programación.
Con Red Hat, no solo obtiene experiencia en las tecnologías de contenedores, sino también ayuda para disminuir la complejidad de la modernización de las aplicaciones, ya que automatiza la gestión de la infraestructura mediante el uso de Red Hat OpenShift, Red Hat Ansible Automation Platform y los operadores de Kubernetes. Red Hat también ofrece Red Hat Advanced Cluster Management for Kubernetes, que incluye otras herramientas para automatizar la gestión de las aplicaciones en diferentes clústeres e infraestructuras, lo cual permite agilizar la distribución de aplicaciones y modernizar las cargas de trabajo.
Blogs de Red Hat
Aquí encuentras la información más reciente sobre nuestros clientes, partners y comunidades open source.