Servidor Couchbase

Ejecución de Couchbase Autonomous Operator en VMware

Cormac Hogan es Director y Jefe de Tecnología en la Oficina del Director de Tecnología de la Unidad de Negocio de Almacenamiento y Disponibilidad (SABU) de VMware. 

Bio: Me incorporé a VMware en abril de 2005 y anteriormente he desempeñado funciones en las organizaciones de ingeniería, marketing técnico y soporte técnico de VMware. He escrito una serie de libros blancos relacionados con el almacenamiento y he dado numerosas presentaciones sobre las mejores prácticas de almacenamiento y las características de almacenamiento de vSphere. También soy coautor de los libros "Essential Virtual SAN" y "vSAN 6.7 Deep Dive".

Un primer vistazo al Operador Autónomo Couchbase

Hace unas semanas, He echado un vistazo a Heptio Velero, antes conocido como Ark. Velero proporciona capacidades de copia de seguridad y restauración para aplicaciones nativas de la nube. Durante esa investigación, he utilizado una base de datos Couchbase como mi aplicación de elección para la copia de seguridad / restauración. Después de hablar con el equipo de Couchbase en relación con esa entrada de blog, me recomendaron encarecidamente que probara el nuevo Couchbase Autonomous Operator en lugar del método StatefulSet que estaba utilizando para la aplicación. Couchbase habla de las ventajas del enfoque del operador sobre StatefulSets aquí.

Ahora bien, aunque Couchbase proporciona pasos sobre cómo desplegar Couchbase con su operador, lo crean en el espacio de nombres por defecto de K8s. En mi prueba, quiero poner Couchbase en su propio espacio de nombres. Los pasos proporcionados aquí se proporcionan para comenzar con el nuevo operador Couchbase, que se ejecuta en la infraestructura vSphere y vSAN, en su propio espacio de nombres de Kubernetes. También hablo de algunos problemas con la herramienta de generación de carga incluida, llamada pillowfight.

Couchbase proporciona instrucciones preceptivas sobre cómo empezar con su operador aquí. Incluye todos los archivos de configuración necesarios. Algunas cosas sobre el operador:

  • Cuando se carga, descarga la imagen Docker Operator especificada en el archivo operador.yaml archivo. Utiliza una construcción de despliegue para que pueda reiniciarse si el pod en el que se está ejecutando muere.
  • Crea la definición personalizada de recursos (CRD) de CouchbaseCluster.
  • Comienza a escuchar eventos de CouchbaseCluster.

Hice algunas modificaciones para permitir que Couchbase se ejecute en su propio espacio de nombres:

  • En primer lugar he creado un nuevo espacio de nombres (obviamente) llamado couchbase.
  • Cuando se creó el rol de clúster, creé la cuenta de servicio en el nuevo espacio de nombres de couchbase y luego asigné el rol de clúster a esa cuenta de servicio utilizando un enlace de rol de clúster.
  • He modificado el operador.yaml para incluir un metadata.namespace=couchbase para que se aplique al espacio de nombres couchbase

Monitorizando los logs del pod operador couchbase, podemos observar los siguientes mensajes de inicio:

Ahora estaba listo para desplegar el cluster de Couchbase usando el nuevo comando cbopctl CLI. También tuve que hacer algunos cambios en el archivo de configuración del clúster por defecto (couchbase-cluster-sc.yaml).
  • Lo coloqué en el espacio de nombres de couchbase con la etiqueta  metadatos.namespace entrada
  • He puesto spec.disableBucketManagement a true, lo que me permite hacer cambios en los cubos a través de UI/CLI (de lo contrario tengo que hacer todos los cambios a través de ediciones en el archivo YAML).
  • Añadí Volúmenes Persistentes para los montajes por defecto y de datos (tuve que crear una nueva StorageClass para el volumeClaimTemplate a utilizar para esto - ver más abajo)
 Aquí está el archivo YAML completo de CouchbaseCluster con mis cambios resaltados.

Me estoy saltando los requisitos de autenticación y de usuario que están todos documentados en el sitio de Couchbase. Sin embargo, una vez que la aplicación se ha desplegado, usted debería ser capaz de ver lo siguiente en el operador couchbase pod logs:

Y si todo funciona correctamente, puede consultar los pods, los volúmenes persistentes y los servicios a medida que se inicializan.

Así que, para recapitular, los pasos son:
  1. Siga los pasos documentados para configurar el ClusterRole de couchbase
  2. Crear el espacio de nombres couchbase - kubectl create ns couchbase
  3. Crear la cuenta de servicio de operador couchbase en el espacio de nombres couchbase - kubectl create serviceaccount couchbase-operator -namespace couchbase
  4. Crear el operador (modificado para el espacio de nombres couchbase) - kubectl create -f operador.yaml
  5. Crear los secretos necesarios (modificados para el namespac de couchbase) - kubectl create -f secreto.yaml
  6. Crear el cluster couchbase usando cbopctl -. cbopctl create -f couchbase-cluster-sc.yaml
En la última salida, los servicios, tenemos las asignaciones de puertos para la interfaz de usuario de Couchbase, tanto para http y https. Si nos conectamos a cualquiera de los nodos esclavos de K8s con esos puertos, deberíamos poder acceder a nuestro despliegue de Couchbase, usando la credencial Administrador/contraseña proporcionada en nuestra configuración.
Inicialmente no hay ningún bucket creado. Hay uno definido en la configuración del cluster pero lo hemos anulado con la configuración avanzada. Podemos remediarlo rápidamente creando algunos temporales. Añadiré dos - el primero se llama por defecto y el segundo se llama cormac. De momento no hay artículos en ninguno de los dos cubos.
Couchbase también incluye una utilidad llamada pelea de almohadas que es una forma muy útil de rellenar los cubos. Por alguna razón, tuve algunos problemas con la versión "sequioatools" de pillowfight. Una vez que volví a utilizar la versión "couchbaseutils", todo fue bien. Tendrás que configurar las credenciales de usuario apropiadas para hacer esto, pero una vez más todo esto está documentado en el sitio principal del operador Couchbase. Aquí están mis archivos YAML de muestra para rellenar el directorio por defecto cubo:

La única diferencia para el cormac cubo es la sintaxis del comando es ligeramente diferente:

Y lo que es más importante, si echamos un vistazo a la interfaz de usuario de Couchbase, veremos que ahora tenemos 1.000 elementos en cada cubo:

 

Y ya está. Estás listo y funcionando con tu operador Couchbase. Y para terminar, esto se aprovisionó en un clúster K8s sobre una infraestructura VMware PKS, vSphere y vSAN. BTW, el problema con pillowfight fue reportado aquí (el problema está resuelto). 

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Anil Kumar, Director de Gestión de Producto, Couchbase Cloud-Native Database

Anil Kumar es el Director de Gestión de Producto en Couchbase. La carrera de Anil abarca más de 19 años de creación de productos de software en varios dominios, incluyendo software empresarial y servicios en la nube. Es un líder de producto responsable de las líneas de producto Couchbase Server, Couchbase Cloud y Kubernetes, incluyendo la evangelización de la estrategia y visión del producto con clientes, socios, desarrolladores y analistas. Antes de unirse a Couchbase, Anil pasó varios años trabajando en Microsoft Redmond. Anil tiene un máster en informática por la Universidad de Toronto (Canadá) y una licenciatura en tecnología de la información por la Universidad Tecnológica Visvesvaraya (India).

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.