Sin categoría

Ejecutando Couchbase Server bajo Docker en Joyent Trident

Joyent ha anunciado recientemente su nuevo servicio de alojamiento de contenedores Docker Triton. Ejecutar contenedores Docker en Triton en lugar de en una plataforma de alojamiento en la nube más tradicional tiene varias ventajas:

  • Mejor rendimiento, ya que no hay sobrecarga de virtualización a nivel de hardware. Los contenedores se ejecutan sobre metal desnudo.
  • Red simplificada entre contenedores. Cada contenedor obtiene su propia dirección ip privada (y opcionalmente pública).
  • Los hosts se abstraen: basta con desplegar en la "nube de contenedores" y no importa en qué host se ejecute el contenedor.

Para más detalles, consulte la charla de Bryan Cantrill sobre Docker y el futuro de los contenedores en la producción.

Vamos a darle una vuelta con un contenedor "hola mundo", y luego con un cluster de servidores Couchbase.

Regístrese para obtener una cuenta Joyent

Siga las instrucciones de inscripción en la página Joyent sitio web.

También tendrá que añadir su clave SSH a su cuenta.

Actualizar el cliente Docker a 1.4.1 o posterior

Compruebe su versión de Docker con:

Si estás en una versión anterior a la 1.4.1 (como era mi caso), puedes actualizar Docker mediante el comando instaladores boot2docker.

Configuración de Joyent + Docker

Obtenga el repositorio sdc-docker (sdc == Smart Data Center):

Realiza la configuración a través de:

Sustituya los valores de la siguiente manera:

  • $ACCUENTAPuedes conseguirlo iniciando sesión en la interfaz web de Joyent y accediendo al menú Cuenta desde el desplegable de la esquina superior derecha. Busca la opción Nombre de usuario y utilizar ese campo
  • $PRIVATE_KEY_FILE: el nombre del archivo donde se almacena su clave privada, normalmente será id_rsa

Ejecute el comando y debería ver la siguiente salida:

Exportar variables de entorno

Como sugiere la salida anterior, copie y pegue los comandos de la salida. He aquí un ejemplo de cómo se verá (pero usted debe copiar y pegar de la salida de su comando, no el fragmento de abajo):

Docker Hola Mundo

Vamos a crear una imagen docker de Ubuntu que diga hola mundo.

Recuerda, estás ejecutando el cliente Docker en tu estación de trabajo, no en la nube. Aquí tienes un resumen de lo que va a pasar:

Para iniciar el contenedor docker::

Debería ver la siguiente salida:

Además, puesto que el --rm el contenedor habrá sido eliminado después de salir. Puede comprobarlo ejecutando docker ps -a. Esto es importante porque los contenedores parados generan gastos en Joyent.

¡Enhorabuena! Has conseguido un contenedor Docker "hola mundo" corriendo en Joyent.

Ejecutar contenedores Couchbase Server

Ahora es el momento de ejecutar Couchbase Server.

Para poner en marcha tres contenedores de Couchbase Server, ejecute:

Para confirmar que los contenedores están en funcionamiento, ejecute

y deberías ver:

En este punto tendrás variables de entorno definidas con los ids de contenedor de cada contenedor. Puedes comprobarlo ejecutando

Obtener las direcciones ip públicas de los contenedores

Cada contenedor tendrá asignadas dos direcciones IP:

  • Una IP pública, accesible desde cualquier lugar
  • Una IP privada, sólo accesible desde contenedores/máquinas en tu cuenta Joyent

Para obtener la IP pública, podemos utilizar el cliente Docker. (para obtener la IP privada, es necesario utilizar las herramientas Joyent SmartDataCenter, que se describe a continuación).

Ahora tendrás las direcciones IP públicas de cada contenedor definidas en variables de entorno. Puedes comprobar que ha funcionado mediante:

Conectarse a Couchbase Web UI

Abre tu navegador a $container_1_ip:8091 y deberías ver la pantalla de bienvenida de Couchbase:

En este punto, es posible configurar el cluster yendo a la Web UI de cada nodo de Couchbase y siguiendo el Asistente de Configuración. Sin embargo, en caso de que quieras automatizar esto en el futuro, vamos a hacerlo a través de la línea de comandos.

Configurar el primer nodo Couchbase

Elijamos arbitrariamente contenedor_1 como primer nodo del clúster. Este nodo es especial en el sentido de que otros nodos se unirán a él.

El siguiente comando realiza estas operaciones:

  • Establece el nombre de usuario y la contraseña del administrador como Administrador / contraseña (debería cambiarlo).
  • Establece el tamaño de la RAM del clúster en 600 MB

Nota -u admin -p contraseña debe dejarse como está, ya que es sólo pasar el nombre de administrador por defecto y la contraseña para fines de autenticación.

Deberías ver una respuesta como:

Crear un cubo por defecto

Un bucket es equivalente a una base de datos en los sistemas RDMS típicos.

Deberías verlo:

Añadir 2º nodo Couchbase

Añade el segundo nodo Couchbase con este comando

Deberías verlo:

Para verificar que se ha añadido, ejecute:

que debería devolver la lista de nodos de Couchbase Server que ahora forman parte del cluster:

Añadir 3er nodo Couchbase y reequilibrar

En este paso lo haremos:

  • Añade el tercer nodo Couchbase
  • Activar un "reequilibrio", que distribuye los datos del cubo (vacío) por todo el clúster.

Deberías verlo:

Si ve ÉXITOEntonces funcionó. (No estoy seguro de por qué se produce el error "close failed in file ..", pero hasta ahora parece que se puede ignorar con seguridad).

Iniciar sesión en la interfaz web

Abra su navegador a $container_1_ip:8091 y debería ver la pantalla de inicio de sesión de Coucbase:

Inicia sesión con:

  • Nombre de usuario: Administrador
  • Contraseña: contraseña

Y deberías ver los nodos Couchbase:

¡Enhorabuena! Ya tienes un cluster de Couchbase Server funcionando en Joyent Triton.

Desmontaje

Para detener y eliminar los contenedores del servidor Couchbase, ejecute:

Para volver a comprobar que ya no tiene ningún contenedor en ejecución o en estado detenido, ejecute docker ps -a y debería ver una lista vacía.

Instalación de las herramientas de la COSUDE (opcional)

La instalación de las herramientas Joyent Smart Data Center (SDC) le permitirá obtener una mayor visibilidad de su clúster de contenedores - por ejemplo, ser capaz de ver la IP interna de cada contenedor.

A continuación se explica cómo instalar la suite sdc-tools.

Instalar smartdc

Primero instala NodeJS + NPM

Instala smartdc:

Configurar variables de entorno

Sustituya los valores de la siguiente manera:

  • CUENTAPuedes conseguirlo iniciando sesión en la interfaz web de Joyent y accediendo al menú Cuenta desde el desplegable de la esquina superior derecha. Busca la opción Nombre de usuario y utilizar ese campo

Lista de máquinas

Ejecutar sdc-listmachines para listar todos los contenedores ejecutándose bajo tu cuenta Joyent. El resultado debería ser algo parecido a esto:

Encontrar la IP privada de una máquina individual

Referencias

  • API nativa de Docker vs API Triton de Joyent
  • https://www.joyent.com/blog/container-service-preview
  • https://www.joyent.com/blog/docker-bake-off-aws-vs-joyent
  • https://github.com/joyent/sdc-docker
  • https://github.com/joyent/sdc-docker/blob/master/docs/divergence.md
Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Author

Posted by Traun Leyden

Traun Leyden is a Senior Software Engineer at Couchbase currently working on the Touch-DB/Android project. Prior to Couchbase, Traun co-founded Signature Labs, a venture-backed startup that developed an iOS mobile CRM geolocation app that was deployed in Fortune 500 companies. Among his accomplishments, Traun developed a highly popular Android ringer control app called "Buzzoff" and created an open source Neural Network library written in Go that leverages Go channels/goroutines to achieve high computation concurrency.

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.