Buenas prácticas y tutoriales

Contenedores Stateful con Portworx y Couchbase

Portworx Logo Couchbase Logo

Los contenedores están pensados para ser efímeros, por lo que escalan bastante bien para aplicaciones sin estado. Los contenedores con estado, como Couchbase, necesitan un tratamiento diferente. Gestión de la persistencia para contenedores Docker proporcionan una gran visión general de cómo gestionar la persistencia de los contenedores con estado.

Este blog explicará cómo utilizar Plugins de volumen Docker y Portworx para crear un contenedor con estado.

¿Por qué Portworx?

Portworx es un contenedor de servicios de datos fácil de desplegar que proporciona persistencia, replicación, instantáneas, cifrado, RBAC seguro y mucho más. Algunas de sus ventajas son:

  1. Volúmenes granulares de contenedores - Portworx puede tomar múltiples volúmenes EBS por host y agregar la capacidad y derivar volúmenes virtuales granulares (soft) por contenedor.
  2. Zona de disponibilidad cruzada HA - Portworx protegerá los datos, a nivel de bloque, a través de múltiples instancias de computación a través de zonas de disponibilidad. A medida que los controladores de replicación reinicien los pods en diferentes nodos, los datos seguirán estando altamente disponibles en esos nodos.
  3. Apoyo a las operaciones de datos de la empresa - Portworx implementa instantáneas granulares de contenedor, clase de servicio, escalonamiento sobre los volúmenes físicos disponibles.
  4. Facilidad de despliegue y aprovisionamiento - El propio Portworx se despliega como un contenedor y se integra con las herramientas de orquestación. DevOps puede aprovisionar mediante programación almacenamiento granular de contenedores con cualquier propiedad, como tamaño, clase de servicio, clave de cifrado, etc.

Configurar instancia AWS EC2

Portworx sólo funciona en Linux o CoreOS. Configure una instancia de Ubuntu en AWS EC2:

  1. Inicie la instancia de Ubuntu 14.04 con m3.medio tipo de instancia. Asegúrese de añadir el puerto 8091 a las reglas de seguridad de entrada. Esto permite Consola web de Couchbase ser accesible después.
  2. Inicie sesión en la instancia EC2 utilizando el comando: ssh -i ~/.ssh/arun-cb-west1.pem ubuntu@
  3. Actualice la instancia de Ubuntu: sudo apt-get update
  4. Instala Docker: curl -sSL https://get.docker.com/ | sh. Encontrará instrucciones más detalladas en Obtener Docker para Ubuntu.
  5. Habilitar el acceso no root para el comando docker: sudo usermod -aG docker ubuntu
  6. Cierre la sesión de la instancia EC2 y vuelva a iniciarla

Crear volumen AWS EBS

  1. Crear un volumen EBS para 10GB usando la consola EC2 como se explica en docs.
  2. Obtenga el id de instancia de la consola EC2. Adjunte este volumen a la instancia EC2 utilizando este id de instancia, utilice el nombre de dispositivo por defecto /dev/sdf.
    Portworx EC2 Create Volume
  3. Utilice lsblk en la instancia EC2 para verificar que el volumen está conectado a la instancia:

Contenedor Portworx

  1. La composición del almacenamiento físico de cada nodo, todos los volúmenes aprovisionados en el clúster así como sus mapeos de contenedor se almacenan en un clúster etcd. Inicie un clúster etcd:
  2. Por defecto, los volúmenes montados como root no pueden ser compartidos. Habilítelo mediante el comando

    Más información en Configuración de Ubuntu y montajes compartidos.
  3. El contenedor PX-Developer (px-dev) en un servidor con Docker Engine convierte ese servidor en un nodo de almacenamiento escalable. PX-Enterprise, por su parte, ofrece soporte multiclúster y multicloud, donde el almacenamiento bajo gestión puede estar en las instalaciones o en una nube pública como AWS.
    Para este blog, iniciaremos un contenedor px-dev:

    Encontrará información detallada sobre este comando en Ejecutar PX con Docker.
  4. Busque registros que utilicen docker container logs -f px y presta atención a las siguientes afirmaciones:
  5. Compruebe el estado de los volúmenes adjuntos que están disponibles para Portworx utilizando sudo /opt/pwx/bin/pxctl status para ver la salida:

    Muestra la capacidad total disponible y utilizada.

Volumen Docker

  1. Vamos a crear un volumen Docker:

    Encontrará más información sobre este comando en Crear volúmenes con Docker.
  2. Compruebe la lista de volúmenes disponibles mediante volumen docker ls mando:

    Como se muestra, cbvol se crea con pxd conductor.

Couchbase con Portworx Volume

  1. Crear un contenedor Couchbase utilizando el volumen Portworx:

    Observe cómo /opt/couchbase/var donde se almacenan todos los datos de Couchbase en el contenedor se asigna a la carpeta cbvol en el host. Este volumen es mapeado por Portworx.
  2. Inicie sesión en la consola web de Couchbase en http://:8091, utilice el login Administrador y contraseña como contraseña.
  3. Vaya a Cubos de datos y cree un nuevo cubo de datos pwx:
    Couchbase Bucket with Portworx
  4. En la instancia EC2, vea la lista de contenedores:

    etcd, px-dev y db contenedores en funcionamiento.
  5. Mata al db contenedor:
  6. Reinicie el contenedor de base de datos como:

    Ahora, porque cbvol se asigna a /opt/couchbase/var de nuevo, los datos se conservan a través de reinicios. Esto puede verificarse accediendo a la Consola Web de Couchbase y comprobando el archivo pwx creado anteriormente.

Otra perspectiva interesante se encuentra también en ¿por qué las bases de datos no son para contenedores?. Sólo porque existe Docker, no significa que todas sus necesidades de base de datos deben ser Dockerized. Pero si es necesario, entonces hay un montón de opciones y se puede utilizar en aplicaciones de grado de producción.

¿Quieres saber más sobre cómo ejecutar Couchbase en contenedores?

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

Autor

Publicado por Arun Gupta, Vicepresidente, Defensa del Desarrollador, Couchbase

Arun Gupta es vicepresidente de promoción de desarrolladores en Couchbase. Ha creado y dirigido comunidades de desarrolladores durante más de 10 años en Sun, Oracle y Red Hat. Tiene una gran experiencia en liderar equipos multidisciplinares para desarrollar y ejecutar estrategias, planificar y ejecutar contenidos, campañas de marketing y programas. Anteriormente dirigió equipos de ingeniería en Sun y es miembro fundador del equipo Java EE. Gupta es autor de más de 2.000 entradas de blog sobre tecnología. Tiene una amplia experiencia como conferenciante en más de 40 países sobre innumerables temas y es una JavaOne Rock Star desde hace tres años consecutivos. Gupta también fundó el capítulo Devoxx4Kids en Estados Unidos y sigue promoviendo la educación tecnológica entre los niños. Autor de varios libros sobre tecnología, ávido corredor, trotamundos, campeón de Java, líder de JUG, miembro del Dream Team de NetBeans y capitán de Docker, es fácilmente accesible en @arungupta.

1 Comentarios

  1. [...] Fuente: blog.couchbase.com/stateful-docker-containers-portworx-couchbase/ [...]

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.