Descripción general
Un operador de Kubernetes es un método para empaquetar, implementar y gestionar una aplicación de esta plataforma, que se implementa ahí mismo y se administra con la interfaz de programación de aplicaciones (API) de Kubernetes y la herramienta kubectl.
Se trata de un controlador específico de aplicaciones que amplía las funciones de la API de Kubernetes para crear, configurar y gestionar las instancias de aplicaciones complejas en nombre de un usuario de la plataforma.
Se basa en los conceptos básicos de los recursos y los controladores de Kubernetes, pero incluye el conocimiento específico sobre el dominio o la aplicación para automatizar todo el ciclo de vida del software que gestiona.
En Kubernetes, los controladores del plano de gestión implementan ciclos reiterados que comparan el estado deseado del clúster con el estado real. Si no coinciden, el controlador toma las medidas para solucionar el problema.
Un operador es un controlador de Kubernetes a medida que utiliza recursos personalizados (CR) para gestionar las aplicaciones y sus elementos. El usuario proporciona la configuración y los ajustes avanzados dentro de un CR, y el operador de Kubernetes traduce las directivas en acciones de bajo nivel, según las prácticas recomendadas incorporadas en su lógica.
Los recursos personalizados son el mecanismo de extensión de la API en Kubernetes. Las definiciones de recursos personalizados (CRD) delimitan un CR y enumeran todos los ajustes disponibles para los usuarios del operador.
El operador de Kubernetes observa un tipo de recurso personalizado y toma las medidas específicas de la aplicación, para que el estado actual coincida con el deseado en ese recurso.
Los operadores integran los tipos de objetos nuevos a través de las definiciones de recursos personalizados. La API de Kubernetes puede gestionarlas como si fueran objetos incorporados, lo cual incluye la interacción a través del comando kubectl y la inclusión en las políticas de control de acceso basado en funciones (RBAC).
El operador de Kubernetes continúa supervisando su aplicación mientras se ejecuta. También puede recuperarla de las fallas, actualizarla con el tiempo de forma automática y hacer un backup de los datos.
Las acciones que realiza abarcan casi todo: ajustar una aplicación compleja, actualizar la versión de la aplicación o incluso gestionar los módulos del kernel para los nodos de un clúster informático con hardware especializado.
Cómo los operadores gestionan las aplicaciones de Kubernetes
Kubernetes puede gestionar y ajustar las aplicaciones sin estado, como las aplicaciones web, los backends para dispositivos móviles y los servicios de API, sin necesidad de saber cómo funcionan. Las funciones incorporadas de Kubernetes están diseñadas para administrar estas tareas fácilmente.
Sin embargo, para ajustar, actualizar y reconfigurar las aplicaciones con estado, como las bases de datos y los sistemas de supervisión, se requiere conocimiento adicional específico del dominio que Kubernetes no posee.
Los operadores codifican el conocimiento en las extensiones de Kubernetes para poder gestionar y automatizar el ciclo de vida de una aplicación.
Al eliminar las difíciles tareas manuales de gestión de las aplicaciones, permiten ajustar, repetir y estandarizar estos procesos.
Para los desarrolladores de aplicaciones, es más fácil implementar y ejecutar los servicios básicos de los que dependen sus aplicaciones.
Los operadores también ofrecen a los ingenieros de infraestructura y los proveedores una manera uniforme de distribuir el software en los clústeres de Kubernetes y reducir las cargas de soporte identificando y corrigiendo los problemas de las aplicaciones.
Con ellos puede escribir código para automatizar una tarea de manera más avanzada que con las funciones básicas de automatización que ofrece Kubernetes. Para los equipos con un enfoque de DevOps o de ingeniería de confiabilidad del sitio (SRE), se desarrollaron operadores para agregar las prácticas de SRE a Kubernetes.
El patrón operador se encarga de captar la manera en que una persona gestionaría un servicio. El operador humano necesita conocer por completo el funcionamiento de la aplicación o del servicio, la forma de implementarlo y de solucionar cualquier problema que pueda surgir.
El equipo de operaciones o el ingeniero de confiabilidad del sitio es quien suele escribir el software para gestionar una aplicación. Sin embargo, el operador está diseñado para codificar el conocimiento operativo de las personas en un software que gestiona e implementa las cargas de trabajo de Kubernetes, mientras elimina las tareas manuales.
Los mejores diseños de operadores provienen de los especialistas en la lógica empresarial de instalar, ejecutar y actualizar una aplicación en particular.
Para crearlos, generalmente se comienza por automatizar la instalación y la implementación de autoservicio de las aplicaciones, y luego se aplican funciones de automatización más complejas.
También hay un kit de desarrollo de software (SDK) de operadores de Kubernetes que puede usar para desarrollar el suyo. El SDK ofrece las herramientas para diseñar, probar y empaquetar operadores con la opción de crearlos usando las plantillas de Helm, los playbooks de Ansible o el lenguaje Golang.
Recursos de Red Hat
Marco de operadores
El marco de operadores es un proyecto open source que ofrece herramientas de Kubernetes de tiempo de ejecución y para el desarrollador, lo cual le permite agilizar la creación de los operadores.
El marco de operadores incluye lo siguiente:
- SDK del operador: permite que el desarrollador diseñe operadores según su experiencia, sin necesidad de conocer las complejidades de la API de Kubernetes.
- Gestión del ciclo de vida del operador: supervisa la instalación, las actualizaciones y la gestión del ciclo de vida de todos los operadores que se ejecutan en un clúster de Kubernetes.
- Medición del operador: posibilita la generación de informes de uso para los operadores que prestan servicios especializados.
El uso de operadores en Red Hat OpenShift
Red Hat® OpenShift® es una plataforma de contenedores de Kubernetes empresarial con operaciones automatizadas integrales para gestionar implementaciones de nube híbrida y multicloud.
Red Hat OpenShift utiliza operadores de Kubernetes para ejecutar toda la plataforma de manera autónoma, mientras expone la configuración de forma nativa a través de objetos de Kubernetes, lo cual posibilita la instalación rápida y las actualizaciones frecuentes y sólidas.
Red Hat OpenShift trae OperatorHub integrado, un registro de operadores certificados de proveedores de software y proyectos open source. Dentro de OperatorHub puede buscar e instalar una biblioteca de operadores verificados para trabajar con Red Hat OpenShift y empaquetados para ofrecer una gestión sencilla del ciclo de vida.
Blogs de Red Hat
Aquí encuentras la información más reciente sobre nuestros clientes, partners y comunidades open source.