
en mayo nosotros Presentamos el marco del operador de Kubernetes Cloud Native Rejekts ’22 en Valencia, España.Definición del marco del operador Cinco niveles de habilidad, desde el nivel 1 (instalación básica) hasta el nivel 5 (piloto automático). La mayoría de los operadores de Kubernetes están en el nivel medio, en el tercer nivel.Este Proyecto de demostración del operador L5 Muestra el aspecto de un operador de nivel 5.
[ Get this complimentary eBook from Red Hat: Managing your Kubernetes clusters for dummies. ]
Antes de que comencemos a defender la importancia de los niveles de operador y las competencias más altas, tenemos una pregunta apremiante: «¿Por qué operadores?» Antes de responder esta pregunta o profundizar en los niveles de operador, nuestra audiencia necesita algunos conceptos básicos.
Este artículo proporciona el quién, qué, cuándo, dónde, por qué y cómo del operador. Queremos simplificar drásticamente a los operadores para que todos tengan una comprensión de alto nivel de qué son los operadores y por qué son tan valiosos en Kubernetes, el código abierto y la comunidad tecnológica en general. En un artículo de seguimiento, explicaremos cómo crear operadores.
¿Quién creó el operador?
Los operadores de Kubernetes se mencionaron por primera vez en un artículo de 2016 titulado Introducción al operador: integración del conocimiento operativo en el software Por Brandon Philips, CTO de CoreOS. Su equipo de ingenieros de confiabilidad del sitio desarrolla software para el dominio de la aplicación y ha estado trabajando en la comunidad de Kubernetes para diseñar e implementar un concepto que pueda crear, configurar y administrar de manera confiable aplicaciones complejas sobre Kubernetes. Llamó a este nuevo tipo de software «Operador».
¿Qué es un operador?
Según Philips, «un operador es un controlador específico de la aplicación que amplía la API de Kubernetes para crear, configurar y administrar instancias de aplicaciones complejas en nombre de los usuarios de Kubernetes».
Esta no es una idea completamente nueva, sino una extensión de los conceptos de controlador y recurso de Kubernetes existentes con conocimiento específico de la aplicación agregado.
[ Get the Kubernetes glossary. ]
Un operador consta de tres componentes principales: controlador, recursoy Conocimiento.
1. Controlador
El controlador es un lazo de control que monitorea el estado del clúster y acerca el estado actual del clúster al estado deseado. Algunos ejemplos de controladores que se usan comúnmente en Kubernetes son los controladores de implementación, los controladores DaemonSet y los controladores ReplicaSet.
2. Recursos
Un recurso, o más específicamente un recurso personalizado, es un punto final en la API de Kubernetes que almacena algún tipo de colección de objetos de la API. Algunos ejemplos de recursos en Kubernetes incluyen pods, secretos y ConfigMaps.
Un recurso personalizado (CR) es un operador personalizado que los usuarios pueden crear para almacenar sus propios objetos API, mientras que el servidor API maneja el ciclo de vida CR. CR almacena y recupera datos estructurados. Es una instancia de una definición de recurso personalizado (CRD), por lo que debe definir un CRD antes de poder crear una instancia de un CR.
El siguiente es un ejemplo de un CRD:
---
apiversion: apiextensions.k8s.io/v1
kind: CustomResourceDefintion
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.7.0
creationTimestamp: null
name: besties.pets.bestie.com
spec:
group: pets.bestie.com
names:
kind: Bestie
listkind: Bestielist
plural: besties
singular: bestie
scope: Namespaced
versions:
- name: v1
3. Conocimiento
El conocimiento es información específica de un dominio o de una aplicación, generalmente aprendida por los usuarios o administradores en lugar de los desarrolladores. Algunos ejemplos de conocimientos específicos de la aplicación que se pueden implementar en un operador incluyen instalación, escalado, autorreparación, copia de seguridad y recuperación, actualización, limpieza, resiliencia y observabilidad.
Los operadores L5 implementan el conocimiento durante su fase de instalación. La aplicación necesita inicializar la base de datos de PostgreSQL antes de instanciar el módulo de la aplicación. Entonces, en nuestro operador, creamos un trabajo con la información requerida para generar el pod de la base de datos antes de crear el pod de la aplicación. Esto asegura que la base de datos exista antes de que la aplicación intente acceder a ella.
[ Learn the basics in the Kubernetes cheat sheet. ]
Capacidad del operador
Los operadores consisten en diferentes niveles de competencia.Este Nivel de habilidad del operador La siguiente infografía muestra el rango de conocimiento para cada nivel. También muestra los niveles que pueden alcanzar las diferentes herramientas del operador. timón Se pueden crear operadores de hasta calibres de nivel 3, mientras que Ansible y Go pueden crear operadores de conducción autónoma de nivel 5 completo para administrar completamente la aplicación.
¿Por qué son valiosos los operadores?
Los operadores crean ecosistemas de software que se pueden usar y operar de manera fácil, segura y confiable como servicios en la nube. Alivian la carga de trabajo manual que los usuarios de Kubernetes tendrían que hacer de otro modo y proporcionan una manera fácil de instalar y trabajar con aplicaciones y software.
Son de bajo contacto y se administran de forma remota, con actualizaciones con un solo clic. Brindan consistencia y estabilidad en los servicios en la nube y la creación de contenedores para brindar funcionalidad donde se necesita.
Cuantas más personas aprendan sobre los operadores, más posibilidades tendremos de continuar mejorando el nivel de capacidad promedio de los operadores en el ecosistema, lo que permitirá a las empresas y desarrolladores crear aplicaciones nativas de la nube más simples, seguras y confiables. Esto ha llevado a más innovación en el campo y más transiciones a soluciones nativas de la nube.
Este Marco del operador El kit de herramientas es un software de código abierto. Por lo tanto, los operadores confían en la comunidad para crearlos y desarrollarlos aún más en la próxima generación de administración y automatización de aplicaciones. Cuanto más trabajemos juntos, mejor será el transportista.
[ Getting started with containers? Check out Deploying containerized applications: A technical overview. ]
¿Cuándo se deben usar los operadores?
Por supuesto, a pesar de lo sorprendente y útil que es el operador, no es la respuesta correcta para todas las aplicaciones. Los operadores son difíciles y pueden ser tediosos según sus necesidades. Necesitan tiempo y experiencia con su solicitud, y si su solicitud no necesita mucha ayuda, el esfuerzo puede ser más de lo que puede negociar.
Aquí hay algunas preguntas para ayudarlo a determinar si su aplicación puede beneficiarse de los operadores:
- tu aplicación es ¿Aplicación con estado? Los operadores son más útiles cuando ayudan a administrar aplicaciones con estado en una configuración de Kubernetes.
- ¿Su aplicación contiene Tareas específicas de la aplicación ¿Puede beneficiarse de la automatización administrada que Kubernetes aún no ha logrado?
- ¿Puede su aplicación beneficiarse de más escalable, repetible, y Estandarización?
Si respondió «sí» a estas preguntas, debería considerar el uso de operadores.
¿Quién está usando el transportista?
Los operadores son ampliamente utilizados. OperadorHub.io es un repositorio comunitario para operadores existentes, con listados de Amazon, Dell, Prometheus, PostgreSQL, Grafana, MongoDB, Couchbase, GitLab, Quay, Redis, Red Hat y más. Todas estas empresas proporcionan operadores en OperatorHub.
Nuestro próximo artículo le mostrará cómo crear su propio operador.
[ Want to test your sysadmin skills? Take a skills assessment today. ]