En Mi Local Funciona

Technical thoughts, stories and ideas

Introducción a Openshift: Creando nuestro laboratorio

Publicado por Manuel Valle el

InfraestructuraDevOpsOpenShiftDockerKubernetesRedHat

Openshift en una tecnología de RedHat para ofrecer servicio de PaaS. En versiones anteriores a la actual estaba basado en kernel namespaces, cGroups, y SELinux pero a día de hoy se basa en Docker y Kubernetes. En otro artículo del compañero José María Hidalgo se habló de como montar Openshift en Ubuntu 16.04. En este montaremos un laboratorio de otro modo y con varios nodos.

Para hablar de Openshift tenemos que hablar obligatoriamente de Kubernetes, y los que seguís nuestro blog sabéis que ya fue tratado en nuestro articulo "Kubernetes (I)". Ahí vimos como empezar a trabajar con este orquestador de contenedores Docker. Los conceptos son prácticamente los mismos, aunque Openshift añade algunos como:

  • Builds
  • Deployment
  • Consola Web
  • Projects

En las siguientes imágenes podemos ver la comparación de las 2 arquitecturas:

Kubernetes Openshift
Kubernetes Openshift

Existen 3 versiones de Openshift:

En este artículo vamos a montar un laboratorio con un cluster de Openshift Origin sobre Vagrant y VirtualBox con 2 nodos. Los requisitos son los mismos que en el artículo de "Kubernetes (I)"

Cómo empezar

Una vez instalados los requisitos básicos en nuestra máquina (Vagrant, Virtualbox, Git) podemos empezar con la instalación:

Paso 1 - Descargar repositorio

Tenemos que descargarnos el repositorio con el Vagrantfile y el tooling asociado para montar nuestro entorno. Para ello iremos a la página de Github del repositorio de Openshift Origin: https://github.com/openshift/origin/tree/release-1.2 y nos clonamos o descargamos el repositorio. Como se puede ver vamos a utilizar la release 1.2.

En este caso vamos a clonarnos el repositorio con Git:

git clone https://github.com/openshift/origin.git  
git checkout release-1.2  
Paso 2 - Crear nuestro cluster lab

En el directorio donde hemos descargado el repositorio hay un fichero Vagrantfile. Si queremos añadir complejidad o cambios en nuestro cluster lab podemos ver las diferentes variables que hay. En nuestro ejemplo hemos utilizado 3 variables para fijar el numero de nodos, montar un cluster y no una máquina standalone y añadir un prefijo a nuestras máquinas ("ENMILOCALFUNCIONA"):

export OPENSHIFT_VM_NAME_PREFIX="ENMILOCALFUNCIONA-"  
export OPENSHIFT_DEV_CLUSTER=true  
export OPENSHIFT_NUM_MINIONS=2  
vagrant up  

Estos comandos empezarán a crear las máquinas master y los nodos:

Ahora, si queremos podemos acceder a la consola en la URL https://10.245.2.2:8443

Este tipo de instalación crea en local 2 carpetas con la configuración:

  • openshift.local.config
  • openshift.local.etcd

Las utilizaremos para validarnos con el cluster.

Paso 3 - Instalación de cliente oc y oadm

Para Openshift existen dos herramientas CLI básicas para interactuar con el cluster:

  • oc: Para realizar operaciones de cliente como crear aplicaciones, pods, etc. Mas info aquí
  • oadm: Para realizar operaciones de administración del cluster. Mas info aquí. El comando oadm se puede utilizar también como oc adm.

Para instalar el cliente volveremos a la página de GitHub y en el apartado de releases encontraremos los binarios relativos a nuestra versión (https://github.com/openshift/origin/releases/tag/v1.2.1):

Paso 4 - Login

Parar validarnos (oc login) utilizaremos por ejemplo las credenciales que son admin y cualquier password. En realidad con este método la autenticación es abierta, y valen todos los usuarios y cualquier password (anypassword). Si queremos entrar como admin del cluster tendremos que dar permisos de administrador del mismo al usuario:

export KUBECONFIG=./openshift.local.config/master/admin.kubeconfig  
oc adm policy add-cluster-role-to-user cluster-admin admin  

y luego login:

$> oc login -u admin
Authentication required for https://10.245.2.2:8443 (openshift)  
Username: admin  
Password:  
Login successful.

You have access to the following projects and can switch between them with 'oc project <projectname>':

  * default
    openshift
    openshift-infra

(recuerda: la password puede ser cualquiera)

El login y configuraciones más específicas ya se trataron en el artículo de nuestro compañero José María Hidalgo. Esperemos que con este artículo hayáis podido construir vuestro entorno Openshift y podáis empezar a trabajar con él. Mas allá de la infraestructura de Openshift, lo importante es interiorizar los conceptos y los componentes de este cluster de contenedores y que podáis ampliar vuestros ciclos de vida a la infraestructura como código.

Recordad que Openshift está corriendo sobre Kubernetes, del cual ya hablé en otro de mis artículos. ¡Quizás os pueda ayudar!

¡Síguenos en Twitter para no perderte ni un post!

Manuel Valle
Autor

Manuel Valle

Miembro de Oficina Técnica en atSistemas.
Implantador y "contagiador" de filosofía DevOps y metodologías Ágiles. Especialista en IaaS y PaaS.
Twitter: @manuvaldi