Operador autónomo Couchbase con volúmenes persistentes en Azure AKS

Estamos muy contentos de anunciar PRIMERA Base de datos NoSQL integrada de forma nativa con la API de kubernetes (k8s), a través de CRD, dando una inmensa potencia, agilidad, portabilidad en la nube a los clientes para que puedan ser gratis de

  1. Gestión o administración de Couchbase Cluster
  2. Preocupado por los fallos de los nodos, el operador de k8s hace girar una vaina por usted
  3. Preocúpese de realizar la operación de reequilibrio después de añadir un nodo, el operador k8s la realiza por usted
  4. Fijación del proveedor

La integración nativa con k8s nos permite definir un controlador personalizado, a través del cual podemos definir el flujo de trabajo (s) para ciertas condiciones que ocurren en el clúster Couchbase. Al escribir esa lógica en el controlador personalizado nos da la capacidad de gestionar mejor el clúster de Couchbase.

La ejecución de Couchbase Autonomous Operator en Azure AKS se encuentra actualmente en fase de vista previa técnica.

Esto es lo que vamos a hacer

  1. Iniciar sesión en Azure con CLI (az login)
  2. Crear un grupo de recursos
  3. Crear un clúster k8s en AKS
  4. Acceder al panel k8s (Opcional)
  5. Despliegue de Couchbase Autonomous Operator
  6. Despliegue del clúster Couchbase en AKS
  7. Insertar algunos (~100K) documentos en el cluster
  8. Amplíe el clúster con una sola orden
  9. Eliminar un pod, simulando un fallo de nodo
  10. Vea que k8s observa ese evento, y trae el nuevo pod, para que coincida con la definición del cluster
  11. Referencias

Ahora vamos a ir a través de la implementación de Operador Autónomo en Azure Kubernetes Service paso a paso de forma muy detallada

Iniciar sesión en Azure con CLI (az login)

Crear un grupo de recursos

Crear un clúster k8s

Iniciamos sesión en el portal Azure, y buscamos Azure Kubernetes Service en el icono de búsqueda, deberíamos ver esta pantalla

Crear servicio K8s

Elija el tamaño de la instancia para k8s nodos y seleccione el número de nodos según los requisitos

Elija el tipo de instancia

 

 

 

 

 

 

 

 

 

 

Selección de los tipos de instancia

Elija el número de nodos trabajadores k8s

Habilitar RBAC para el cluster k8s

Elija RBAC para k8s

Elegir red por defecto

Seleccione la configuración predeterminada de Red

Activar la supervisión de contenedores

Elija la configuración predeterminada para supervisar los contenedores

Asegúrate de que la validación es correcta y pulsa crear

Haga clic en Siguiente y compruebe que se ha superado la validación para el clúster k8s.

Ejecutar el comando para obtener k8s clúster que se ejecuta en Azure, a nivel local (me parece personalmente útil como me da la capacidad de gestionar k8s clúster remoto que se ejecuta en AKS. Otra opción sería utilizar Concha azul)

La siguiente captura de pantalla da una idea de cómo comprobar si la configuración del clúster AKS es correcta a nivel local o no.

Compruebe si el clúster k8s funciona en AKS

Acceder al panel k8s (Opcional)

Todos los activos k8s se pueden gestionar a través de kubectl y con el acceso GUI al clúster Couchbase, se hace más manejable. Sin embargo, me gustaría hacer algo de administración de activos k8s a través de k8s Dashboard también.

[TIP] Si k8s dashboard da problemas de permisos como

a continuación, ejecute el siguiente comando

En este momento debemos tener acceso para k8s salpicadero funcionando en URL http://127.0.0.1:8001/

Despliegue de Couchbase Autonomous Operator

Recuerde que el despliegue del operador CB es un trabajo de una sola vez, y es muy sencillo

He descargado los archivos zip del operador en mi portátil local desde la URL Descargar el paquete Couchbase Operator

Habilitar RBAC para couchbase cluster en k8s

Despliegue del operador couchbase

Está listo en menos de un minuto y podemos ver cómo se despliega.

 

Despliegue del clúster Couchbase en AKS

Ahora que hemos desplegado el Operador Autónomo en AKS, vamos a desplegar el Cluster Couchbase

Con AKS, tenemos StorageClass por defecto, vamos a comprobar

Para nuestro despliegue elegiremos managed-premium

Puede encontrar el archivo yaml detallado aquí, couchbase-persistent-cluster.yaml

El cluster de couchbase tarda unos minutos en arrancar y vamos a crear 4 pods, y por primera vez, descarga la imagen docker del registro, ¡quizás buen momento para tomar un café!

Exponiendo el servicio cb-op-aks-demo-ui desde NodePort(Por defecto LoadBalancer), nos da la posibilidad de acceder a la GUI de Couchbase Server a través de una IP pública.

Exponer cb-op-aks-demo-ui de NodePort a LoadBalancer

Comando de ejecución

debería dar un resultado como el siguiente

Ahora inicie sesión en la GUI con el nombre de usuario/contraseña por defecto, es decir, Administrador/contraseña.

Inicie sesión en la GUI en la IP pública expuesta por el equilibrador de carga

Insertar algunos (~100K) documentos en el cluster

[TIP] La utilidad cbc-pillowfight debe instalarse en el contenedor antes de ejecutarlo. Su instalación está fuera del alcance de este blog.

Deberíamos ver la tabla de estadísticas de cubos encendida

Estadísticas del cubo cuando la pelea de almohadas está en marcha

Amplíe el clúster con una sola orden

Escalar el cluster couchbase es un trabajo muy simple con kubernetes, solo actualiza el archivo couchbase-persistent-cluster.yaml, digamos que queremos incrementar la capacidad de los nodos de datos de 3 a 5, entonces cambia servers:size a 5

Ampliación del clúster

Veremos que se crean nuevos pods y se añaden nodos pods aks couchbase al cluster, se realiza el rebalanceo, ¡simplemente increíble!

se crean pods y se realiza el reequilibrio

El clúster se ha escalado y la nueva definición del clúster tiene este aspecto, observando que del total de 100K artículos, cada nodo tiene ~20K artículos/nodo

Nueva definición de clúster

[TIP] Comprobemos si tenemos PV en nuestros contenedores

Inicie sesión en el pod y ejecute el comando lsblk -a

En couchbase-persistent-cluster.yaml habíamos definido un volumen de almacenamiento de 4GiB, y en el fragmento resaltado vemos que ¡tenemos directorios Couchbase de 4GiB!

Eliminar un pod, simulando un fallo de nodo

Eliminar un pod cb-op-aks-demo-0000 de k8s dashboard, es un nodo de servicio de datos

Borrar un pod del salpicadero de k8s

Con el autoFailoverTimeout variable timeout definida en couchbase-persistent-cluster.yaml, el nodo se auto-falla y es detectado por el Operador Autónomo y por tanto por el Cluster Couchbase.

Nodo eliminado y fallido

El controlador personalizado de Couchbase está constantemente observando la definición del cluster y necesita tener un total de 4 nodos o pods k8s, y ve que uno se ha ido, por lo tanto crea un nuevo pod, se une al cluster y se realiza el rebalanceo.

Se crea un nuevo pod, se une al clúster y se realiza la operación de reequilibrio, todo ello de forma automática

De los registros de los pods del operador couchbase

progreso del reequilibrio en los registros de coucbase-operator-xxx

Tomémonos un momento para ver qué ha pasado aquí.

Un nodo ha fallado, fue detectado por Custom Controller aka Couchbase Operator, también observa la definición del cluster couchbase y ve que necesita tener 7 pods o 7 nodos couchbase en total, ve que uno se ha ido, espera por autoFailoverTimeout, y hace girar un nuevo pod, se une al cluster y se realiza la operación de rebalanceo.

En Couchase creemos en la diferenciación sostenida para servir mejor a nuestros clientes en términos de agilidad, rendimiento y tecnología punta. Esto es sin duda un cambio de juego. Apreciaremos sus comentarios, esperamos hacer su viaje hacia microservicios un paso fácil con Couchbase Autonomous Operator en kubernetes corriendo en AKS.

Referencias

https://docs.microsoft.com/en-us/azure/aks/azure-disks-dynamic-pv

https://docs.microsoft.com/en-us/azure/aks/tutorial-kubernetes-deploy-cluster

¡El nuevo Couchbase Autonomous Operator 1.0 para Kubernetes y OpenShift ya es GA!

https://docs.couchbase.com/operator/1.0/overview.html

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

Autor

Publicado por Ram Dhakne

Ram Dhakne es Consultor de Soluciones - US West en Couchbase. Actualmente ayuda a los clientes empresariales con su viaje de innovaciones digitales y les ayuda a adoptar tecnologías NoSQL. Sus intereses actuales son ejecutar aplicaciones persistentes como el servidor NoSQL Couchbase en clústeres Kubernetes que se ejecutan en AKS, GKE, ACS y OpenShift, asegurando de extremo a extremo en kubernetes. En su vida pasada ha trabajado en plataformas IaaS (AWS, GCP, Azure & Private Clouds), Enterprise Backup Target Products & Backup Applications.

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.