Kubernetes

Tutorial del operador de Kubernetes

Tutorial del operador de Kubernetes
Los operadores de Kubernetes son un concepto introducido por el proyecto CoreOS para ampliar las capacidades de Kubernetes, en particular la gestión de aplicaciones con estado. Se supone que simplifica todo el ciclo de vida de los recursos con estado, desde empaquetar la aplicación e implementarla en un clúster de Kubernetes hasta administrar y escalar la aplicación.

Como ejemplo, algunos de los componentes centrales de Kubernetes como etcd tienen sus correspondientes Operadores disponibles por el proyecto CoreOs. Etcd es un almacén de valores clave distribuido que refleja el estado de ejecución de todo el clúster de Kubernetes en un instante determinado. Naturalmente, es una aplicación con estado y varios controladores de Kubernetes se refieren a etcd para averiguar cuál será su próximo paso. Por ejemplo, el controlador ReplicaSet observará el número de pods que se ejecutan en un selector determinado e intentará que el número de instancias en ejecución sea igual al número especificado por su ReplicaSet o Deployment YAML. El ReplicaSet se refiere a etcd, que realiza un seguimiento del número de pods en ejecución y una vez que el número de pods se cambia al valor deseado, etcd también actualizaría su registro.

Pero cuando se trata de aplicaciones con estado, como el mismo etcd, no podemos activar más pods en diferentes nodos sin una intervención seria. Porque todas las instancias en ejecución deben tener datos coherentes entre sí en todo momento. Aquí es donde los operadores son útiles.

Prerrequisitos

Si desea seguir este tutorial, puede comenzar con algo pequeño como un Minikube instalado en su computadora portátil o la distribución de Kubernetes que viene con Docker para escritorio.

Lo importante es comprender las ideas básicas de Kubernetes para empezar.

Etcd

Creemos un operador que administre etcd en nuestro clúster de Kubernetes. No instalaremos etcd como un componente de Kubernetes (es decir, en el espacio de nombres del sistema kube) sino como una aplicación normal. Porque hacer eso pondría en riesgo a todo el clúster. Sin embargo, una vez que se sienta cómodo con los operadores, puede usarlos para implementar etcd en el sistema kube mientras inicia un nuevo clúster.

Usaré Katacoda Playground aquí, y una inspección más cercana del espacio de nombres del sistema kube le mostrará que tenemos un pod ejecutándose, etcd para nosotros. Pero eso no es algo con lo que estaremos jugando. Instalaremos etcd en el espacio de nombres predeterminado gestionado por etcd-operator

Al comenzar, el espacio de nombres predeterminado no tiene pods en ejecución, tenemos una pizarra limpia.

$ kubectl obtener vainas

No se encontraron recursos.

Ahora instalemos una nueva instancia de etcd en este espacio de nombres. Comenzamos clonando el repositorio seguido de un simple comando kubectl.

$ git clon https: // github.com / coreos / etcd-operator.git
$ cd etd-operator

Creación de operador Etcd

En el repositorio, hay varios ejemplos para operar, el primero crearía un operador etcd simple usando despliegue.yaml expediente. Antes de usar eso, primero debemos crear un rol para el operador a través del cual puede administrar y escalar el clúster etcd. Puede crear ese rol usando un script de shell.

$ / ejemplo / rbac / create_role.sh
$ kubectl crear -f ./ ejemplo / implementación.yaml

El objeto de operador será creado por el último comando aunque no habrá nada sobre lo que operar. Todavía no tenemos un clúster etcd. Así que creemos uno.

$ kubectl crear -f ./ ejemplo / ejemplo-etcd-cluster.yaml

Esto crea un grupo de pods etcd. Puedes verlos usando:

$ kubectl obtener vainas
 
NOMBRE ESTADO LISTO REINICIA EDAD
etcd-operator-69b559656f-495vg 1/1 En funcionamiento 0 9m
ejemplo-etcd-cluster-9bxfh657qq 1/1 Ejecutando 0 23s
ejemplo-etcd-cluster-ntzp4hrw79 1/1 En ejecución 0 8m
ejemplo-etcd-cluster-xwlpqrzj2q 1/1 En ejecución 0 9m

El primero en esta lista es el módulo de operador que aseguraría que el clúster etcd mantenga un cierto estado, como se indica en los archivos yaml que usamos anteriormente. Si intenta eliminar uno de los pods example-etcd-cluster, se creará otro para ocupar su lugar. Eso es muy similar a lo que hace ReplicaSet, pero aquí los pods tienen estado!

Operadores en general

Como se mencionó anteriormente, los operadores son un marco general dentro del cual se pueden implementar y administrar aplicaciones complejas. El marco en sí es lo que los hace útiles y los ejemplos particulares como el operador etcd o el operador Prometheus que proporciona CoreOS están pensados ​​para actuar como una guía para que usted desarrolle su propia aplicación de manera similar.

Algunos aspectos importantes de los operadores de Kubernetes son el SDK utilizado para escribir, construir y probar su propio operador personalizado, el segundo es la idea de Gerente de ciclo de vida del operador donde puede pensar en todas las etapas por las que puede pasar su operador, así como el servicio que ofrece.

Las etapas del ciclo de vida pueden incluir varias actualizaciones, averiguar qué operador se está ejecutando en qué espacios de nombres y también actualizar los operadores cuando aparece una nueva versión.

Referencias

Puede leer mucho más sobre esta tecnología en:

  1. Publicación original de CoreOS, y
  2. El operador etcd se puede explorar aquí
Las mejores aplicaciones de mapeo de gamepad para Linux
Si te gusta jugar juegos en Linux con un gamepad en lugar de un sistema de entrada de teclado y mouse típico, hay algunas aplicaciones útiles para ti....
Herramientas útiles para jugadores de Linux
Si le gusta jugar juegos en Linux, es probable que haya utilizado aplicaciones y utilidades como Wine, Lutris y OBS Studio para mejorar la experiencia...
Juegos HD remasterizados para Linux que nunca tuvieron un lanzamiento de Linux antes
Muchos desarrolladores y editores de juegos están creando una remasterización HD de juegos antiguos para extender la vida útil de la franquicia, por f...