
Couchbase Operator le permite ejecutar implementaciones de Couchbase de forma nativa en Kubernetes de código abierto o Red Hat OpenShift Container Platform para empresas.
El objetivo de Couchbase Operator es gestionar completamente uno o más despliegues de Couchbase eliminando las complejidades operativas de la ejecución de Couchbase mediante la automatización de la gestión de tareas comunes de Couchbase como la configuración, creación, actualización y escalado de clusters de Couchbase.
Al reducir la complejidad de ejecutar un clúster de Couchbase, te permite centrarte en la configuración deseada y despreocuparte de los detalles de la implementación manual y la gestión del ciclo de vida.

¿Qué es Kubernetes Operator?
Un Operator es un controlador específico de aplicaciones que amplía la API de Kubernetes para crear, configurar y gestionar instancias de aplicaciones complejas con estado en nombre de un usuario de Kubernetes. Se basa en el controlador Recurso Kubernetes y conceptos de controlador, sino que también incluye conocimientos específicos de dominio o aplicación para automatizar tareas comunes mejor gestionadas por ordenadores.
Kubernetes Operators fue presentado por el equipo de CoreOS y en su anuncioCoreOS sugirió Operadores como medio para gestionar más eficazmente la infraestructura de bases de datos.
¿Cómo funciona?
Couchbase Operator amplía la API de Kubernetes creando una Custom Resource Definition(CRD) y registrando un controlador específico de Couchbase (el Operator) para gestionar clusters de Couchbase.
El CRD permite definir una configuración que describa cómo debe ser un cluster de Couchbase. Por ejemplo, una configuración podría definir un clúster con tres nodos, un bucket y 8 GB de memoria para el servicio de datos. Una vez que la configuración se carga en Kubernetes, la configuración se pasa al controlador personalizado de Couchbase, que realiza acciones para garantizar que se aprovisione un clúster de Couchbase con la configuración especificada.
El controlador también puede detectar actualizaciones de la configuración y reacciona a los cambios que se producen en el propio clúster. Al igual que todos los recursos integrados estándar de Kubernetes, Couchbase Operator no solo gestiona un único clúster de Couchbase, sino varios clústeres de Couchbase en todo un despliegue de Kubernetes.
A continuación se muestra un archivo de configuración de ejemplo para Operador de Couchbase:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
apiVersion: extensions/v1beta1 amable: Despliegue metadatos: nombre: operador couchbase espacio de nombres: por defecto spec: réplicas: 1 plantilla: metadatos: etiquetas: nombre: operador couchbase spec: contenedores: - nombre: operador couchbase imagen: couchbase/couchbase-operator:v1 env: - nombre: MY_POD_NAMESPACE valorDesde: fieldRef: fieldPath: metadata.namespace - nombre: MY_POD_NAME valorDesde: fieldRef: fieldPath: metadata.name puertos: - nombre: preparación-puerto containerPort: 8080 readinessProbe: httpGet: ruta: /readyz puerto: preparación-puerto initialDelaySeconds: 3 periodSeconds: 3 failureThreshold: 19 |
Y aquí hay un archivo de configuración de ejemplo para un Clúster Couchbase.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
apiVersion: couchbase.database.couchbase.com/v1beta1 amable: CouchbaseCluster metadatos: nombre: cb-ejemplo spec: baseImage: couchbase/servidor versión: enterprise-5.0.1 authSecret: cb-example-auth exposeAdminConsoleVerdadero grupo: dataServiceMemoryQuota: 256 indexServiceMemoryQuota: 256 searchServiceMemoryQuota: 256 indexStorageSetting: memoria_optimizada autoFailoverTimeout: 30 cubos: - nombre: por defecto tipo: couchbase memoryQuota: 128 réplicas: 1 ioPriority: alto política de desalojo: fullEviction resolución de conflictos: seqno enableFlushVerdadero enableIndexReplica: falso servidores: - tamaño: 3 nombre: todos_servicios servicios: - datos - índice - consulta - busque en ruta de datos: /opt/couchbase/var/lib/couchbase/data indexPath: /opt/couchbase/var/lib/couchbase/data |
¿Qué hay disponible en Beta?
Para cumplir con el objetivo de gestionar completamente uno o más despliegues de Couchbase en Kubernetes u OpenShift, esta versión beta viene con algunas de las capacidades clave:
- Aprovisionamiento automatizado de clústeres
- Escalabilidad elástica
- Recuperación de vehículos
- Registro
- Acceso a la consola web de Couchbase
Sumerjámonos de lleno.
Aprovisionamiento automatizado de clústeres
Una vez definida la configuración del clúster de Couchbase "couchbase-cluster.yaml", se puede insertar en tu clúster de Kubernetes u OpenShift con el comando:.
|
1 2 |
$ kubectl crear -f https://s3.amazonaws.com/packages.couchbase.com/kubernetes/beta/couchbase-cluster.yaml couchbasecluster "cb-ejemplo" creado |
O
|
1 2 |
$ oc crear -f https://s3.amazonaws.com/packages.couchbase.com/kubernetes/beta/couchbase-cluster.yaml couchbasecluster "cb-ejemplo" creado |
Escalabilidad elástica
Según la configuración, el clúster Couchbase se aprovisionará completamente en el clúster Kubernetes.
Puede ampliar o reducir el clúster de forma elástica actualizando la configuración del clúster y enviando los cambios al clúster Kubernetes con el siguiente comando.
|
1 2 3 4 5 6 7 8 |
servidores: - talla: 5 nombre: todos_servicios servicios: - datos - índice - consulta - busque en |
|
1 |
kubectl sustituir -f <ruta a config>/couchbase-grupo.yaml |
O
|
1 |
oc sustituir -f <ruta a config>/couchbase-grupo.yaml |
Recuperación de vehículos
El Operador Couchbase puede detectar fallos en los nodos, reequilibrar los nodos defectuosos y devolver el clúster a la capacidad deseada.
La recuperación automática está completamente automatizada e incluye la detección del nodo defectuoso, la recuperación automática, la eliminación del nodo defectuoso, la sustitución por un nuevo nodo y el reequilibrio del nuevo nodo en el clúster.



Registro
La capacidad de soporte es un aspecto importante de esta capacidad de integración nativa para diagnosticar y solucionar problemas con el clúster de Couchbase que ejecuta plataformas Kubernetes u OpenShift.
Más información sobre cómo capturar logs de despliegue completos, logs de Couchbase Operator y logs de Couchbase Server. aquí.
Acceso a la consola web o CLI de Couchbase
Cada plataforma le proporciona un panel de control de implantación - Interfaz web de Kubernetes o Consola web de OpenShift Origin pero para administrador de base de datos o desarrollador de base de datos necesitan acceso a Couchbase Web Console o CLI.
Más información sobre cómo acceder a la Consola Web y CLI de Couchbase aquí.
¿Listo para comprobar la Beta?
- Es fácil conseguir la versión beta siguiendo los siguientes pasos Requisitos previos y configuración para desplegar Couchbase Operator en la plataforma Kubernetes u OpenShift.
- Enlace a Dockerfile
- Servidor Couchbase - https://hub.docker.com/_/couchbase/
- Operador Couchbase - https://hub.docker.com/r/couchbase/k8s-operator/
Si tiene alguna pregunta, comentario u opinión adicional, deje un comentario a continuación o publíquelo en https://www.couchbase.com/forums/.
[…] https://www.couchbase.com/introducing-couchbase-operator/ - entrada de blog sobre el Operador Couchbase. [...]