Buenas prácticas y tutoriales

Tutorial: Operador Autónomo Couchbase en Minikube

Este blog tutorial práctico cubre principalmente los detalles alrededor de la configuración de Couchbase Kubernetes Operator en un ordenador portátil / escritorio que ejecuta minikube. Incluye la configuración de certificados TLS personalizados y volúmenes persistentes. Junto con la comprobación de cómo escalar hacia arriba y hacia abajo el clúster. También ejecutando backup/restore del cluster de Couchbase y ejecutando una aplicación de ejemplo usando Python SDK.

La configuración utiliza Couchbase Operator 1.2 en kubernetes de código abierto utilizando minikube, que se puede ejecutar en un ordenador portátil. El despliegue se realizaría con herramientas de línea de comandos para macOS.

Visión general del tutorial práctico

Requisitos previos

Comandos CLI para macOS, actualice el gestor de paquetes para mac utilizando el siguiente comando

Instale el hipervisor desde el siguiente enlace

https://download.virtualbox.org/virtualbox/6.0.10/VirtualBox-6.0.10-132072-OSX.dmg

Instalar minikube

Instalar kubectl

https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-macos

Inicie minikube utilizando el siguiente comando

[PISTA] Detenga/salga de todas las aplicaciones del portátil si no son necesarias para este tutorial. minikube y el clúster couchbase que se ejecutan en minukube necesitan una buena cantidad de recursos.

Los detalles del entorno del minicubo en mi portátil son los siguientes

Configurar las vCPUs y la memoria a 4 y 4GiB para que Couchbase Operator funcione en el portátil.

detalles del clúster minikube

Despliegue de Couchbase Autonomous Operator

Despliegue de Admission Controller

cd en el directorio de archivos para acceder al yaml requerido archivos  El paquete debe descargarse en el ordenador portátil en su directorio local

En primer lugar vamos a crear un espacio de nombres para localizar el ámbito de nuestro despliegue

Deployment Admission Controller, que es un webhook mutante para la validación de esquemas.

Consulta de la implantación de Admission Controller

Despliegue de Couchbase Autonomous Operator

Despliegue de la definición personalizada de recursos

El alcance del CRD puede ser en todo el cluster k8s o localizado en el espacio de nombres. La elección depende del administrador devops/k8s. En el siguiente ejemplo se localiza a un espacio de nombres en particular

Desplegar el rol de operador

Crear cuenta de servicio

Vincular la cuenta de servicio "couchbase-operator" con el rol de operador

Despliegue del Operador Autónomo Couchbase

Despliegue de consultas

Despliegue de Couchbase Cluster

Despliegue de certificados TLS en el espacio de nombres cbdb
Usando el archivo de ayuda abajo en el enlace, asegúrese de usar el espacio de nombres apropiado, aquí he usado 'cbdb'. Se proporciona el enlace aquí

Consultar los secretos TLS desplegados a través de kubectl

Despliegue secreto para acceder a Couchbase UI

Obtener detalles StorageClass para minikube k8s cluster

Despliegue del clúster Couchbase

El archivo yaml para el despliegue anterior se encuentra en aquí

Si todo va bien deberíamos ver el cluster Couchbase desplegado con PVs, TLS certs

Acceder a la interfaz de usuario de Couchbase
Obtener los detalles del servicio para el clúster Couchbase

Exponer el clúster CB a través del servicio CB UI

Acceso a la interfaz de usuario de Couchbase

Iniciar sesión http://localhost:8091 para acceder a la CB UI

Verifique el certificado raíz para comprobar que se está utilizando un certificado x509 personalizado.

Haga clic en Seguridad->Certificado raíz

Borrar un pod al azar, vamos a borrar el pod 001

El servidor se conmutará automáticamente en función de autoFailovertimeout

Un nodo Couchbase perdido es auto-recuperado por Couchbase Operator como su definición de cluster en constante vigilancia.

Ampliación/reducción

Es un cambio de escala de un solo clic o escala hacia abajo.

Ampliación

Cambiar el tamaño de 3 a 4

Ejecute el siguiente comando

¡Boom!

El clúster se amplía.

Precaución: El clúster K8s necesita tener suficientes recursos para escalar.

Reducción de la escala

Es exactamente lo contrario de escalar, reducir el clúster a cualquier número. Pero no menos de 3.

Couchbase MVP es de 3 nodos.

Copia de seguridad y restauración del servidor Couchbase

Copia de seguridad del clúster CB mediante cbbackupmgr

Crear un repositorio de copia de seguridad en un montaje/volumen de copia de seguridad dado

Copia de seguridad

Restaurar

Ejecutar una aplicación Python de ejemplo desde un espacio de nombres diferente

Crear espacio de nombres para el nivel de aplicación

Despliegue del pod de aplicaciones

Ejecute el programa python de ejemplo para upsert un documento en couchbase cluster

Inicie sesión en los pods shell/exec en app pod

Preparar el pod para instalar el SDK de python

prep-app-pod para el SDK de python

Editar el programa con el FQDN del pod

Ejecutar el siguiente comando después de exec'ing en el pod couchbase

Obtenga el FQDN del pod de la aplicación

Editar el programa con la cadena de conexión correcta

Para mí, la cadena de conexión tiene el siguiente aspecto:

Dado que ambos namespaces en minikube comparten el mismo kube-dns

Ejecutar el programa

El documento reinsertado debería tener el siguiente aspecto

Conclusión

Desplegamos Couchbase Autonomous Operator con la versión 1.2 en minikube versión: v1.2.0. Couchbase cluster requiere controlador de admisión, RBACs con rol limitado al espacio de nombres (más seguro). CRD desplegado tiene un alcance amplio de cluster, pero eso es por diseño. El clúster Couchbase desplegado tenía soporte PV y certificados x509 del cliente.
Hemos visto cómo el clúster Couchbase se autocura y recupera su salud sin intervención del usuario.

Backup y restore son muy críticos para el servidor Couchbase. cbbackupmgr es nuestra utilidad recomendada para realizar backups y restore. También vimos cómo instalar Couchbase python sdk en un pod de aplicación desplegado en su espacio de nombres y podemos hacer que esa aplicación hable con el servidor Couchbase y realice operaciones CRUD.

Limpieza (opcional)

Siga estos pasos para desconfigurar todos los activos k8s creados.

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.

1 Comentarios

  1. Debashis Paul enero 1, 2020 a 7:49 pm

    Hola Ram ,
    Gracias ... esto es bueno documentos completos .. Pocos puntos lo que estaba buscando :
    Puedo editar cluster config a 0 para todos los servicios para hacer desaparecer todos los nodos en webconsole .
    Además, ¿cuál es el método o proceso para detener los pods y procesos en ejecución si quiero reiniciar todo el clúster en el marco autónomo? ¿Hay alguna forma de hacerlo sin perder datos?

    A veces las operaciones como el reequilibrio es una locura y nunca se detiene (veo un montón de tickets abiertos en CB sin resolución) por lo que en este escenario me gustaría reiniciar clúster si es posible.

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.