En este blog exploraremos cómo configurar el uso de Couchbase con Kubernetes y CoreOS. Hay varias estrategias de despliegue que van desde los servidores físicos de metal desnudo a las máquinas virtuales en la nube o mediante el uso de una solución totalmente gestionada de los principales proveedores de la nube. Para esta serie, vamos a instalar una solución completa de Kubernetes ejecutando todos los componentes en tu máquina local. Hay un par de requisitos previos y vamos a entrar en cada uno un poco para entender el panorama general. El entorno que estoy utilizando para este blog es:
- Caja virtual 5.0.8
- Vagrant 1.7.4
- Mac OSX 10.11.1
- Kubernetes 1.0.6
Primero necesitamos configurar Kubernetes y usaremos Vagrant y CoreOS. Vagrant te permite crear entornos de desarrollo consistentes rápidamente entre varios miembros de tu equipo. Puedes leer más en beneficios de usar Vagrant. Vaya a la página página de descargas y seleccione el paquete de su elección. En el momento de escribir esto, estamos apuntando Vagrant 1.7.4 para MAC OSX contra Virtual Box 5.0.8

Abra el paquete vagrant .dmg y siga las instrucciones de instalación. A continuación vamos a iniciar Vagrant.
Descargar Kubernetes
Desde tu aplicación terminal, crea una nueva carpeta y navega hasta ella. Para el ejemplo, he creado una carpeta llamada 'couchbase-kubernetes' y ahí es donde vamos a pasar la mayor parte de nuestro tiempo. 'kubectl' es la herramienta CLI comando principal que vamos a utilizar para interactuar con la API de Kubernetes.
|
1 2 |
$mkdir couchbase-kubernetes |
|
1 2 |
$cd couchbase-kubernetes/ |

Desde dentro de la carpeta 'couchbase-kubernetes', descargaremos los binarios. Primero instala el gestor de paquetes, Elaboración casera, si aún no lo ha hecho y ejecute un 'wget' en:
|
1 2 |
$ARCO=darwin; wget https://storage.googleapis.com/kubernetes-release/release/v1.0.6/bin/$ARCH/amd64/kubectl |
Usted verá algo similar a la de abajo, donde el 'kubectl' se guarda a continuación. Yo elijo el entorno 'darwin' ya que estoy en MacOSX y también puedes elegir 'linux' dependiendo del sistema operativo de tu estación de trabajo.

Comprueba si el binario es un ejecutable ejecutando:
|
1 2 |
$archivo kubectl |
Debería ver que el archivo 'kubectl' existe y que es un ejecutable x86_64 como el de abajo.

Movamos 'kubectl' a nuestro PATH ejecutando:
|
1 2 |
$chmod +x kubectl |
|
1 2 |
$mv kubectl /usr/local/papelera/kubectl |

Ejecutar Kubernetes sobre CoreOS
Ahora estamos listos para configurar las máquinas virtuales que ejecutarán Kubernetes en CoreOS. Primero clonaremos el repositorio que contiene un Vagrantfile. El 'Vagrantfile' tendrá las configuraciones de las máquinas virtuales Kubernetes. Ejecuta el comando:
|
1 2 |
$git clonar https://github.com/coreos/coreos-kubernetes.git |
Ahora debería tener el 'coreos-kubernetes' repo después de ver algo similar a continuación

Iniciar Kubernetes
Ahora estamos listos para iniciar nuestra máquina. Para ello vamos a navegar primero a la carpeta 'single-node' donde iniciaremos Vagrant
|
1 2 |
$cd coreos-kubernetes/solo-nodo/ |
Desde la carpeta 'single-node' ejecutaremos ahora los siguientes comandos para tener una máquina virtual totalmente operativa en VirtualBox.
|
1 2 |
$vagabundo init hashicorp/preciso64 |
Apuntando a la versión de 64 bits, a continuación se muestra lo que verá durante el proceso de configuración de la caja de Ubuntu 12.04 LTS de 64 bits.

A continuación vamos a ejecutar la máquina virtual en VirtualBox:
|
1 2 |
$vagabundo arriba |

Configuración de kubectl
Desde el directorio 'single-node', a continuación configuraremos el cliente local de Kubernetes con los siguientes comandos.
|
1 2 |
$kubectl config configure-grupo vagabundo --servidor=https://172.17.4.99:443 --certificate-authority=${PWD}/ssl/ca.pem |
|
1 2 |
$kubectl config configure-credenciales vagabundo-admin --certificado-autoridad=${PWD}/ssl/ca.pem --cliente-clave=${PWD}/ssl/admin-clave.pem --cliente-certificado=${PWD}/ssl/admin.pem |
|
1 2 |
$kubectl config configure-contexto vagabundo --grupo=vagabundo --usuario=vagabundo-admin |
|
1 2 |
$kubectl config utilice-contexto vagabundo |

Ahora que todo está listo, puedes ver el estado de tu cluster's y su información de configuración ejecutando:
|
1 2 |
$kubectl consiga nodos |

¡Enhorabuena! Ahora tienes un cluster Kubernetes funcionando y configurado. Este es el primer paso antes de ejecutar Couchbase en él. A continuación exploraremos cómo ejecutar Couchbase en el clúster de Kubernetes.
Configuración de Couchbase
Desde dentro del directorio 'single-node', empezaremos a traer las piezas de Couchbase. A partir de ahí podemos configurar Couchbase para lógicas de servicio específicas. Comenzamos clonando el repositorio Couchbase-Kubernetes:
|
1 2 |
$git clonar https://github.com/couchbase/kubernetes.git couchbase-kubernetes |
|
1 2 |
$cd couchbase-kubernetes |
¡En nuestro próximo blog sobre Couchbase y Kubernetes, repasaremos en concepto y en la configuración y ejecución de los Controladores de Servicio y Replicación para Couchbase!