Instalación y Configuración de Openshift en Ubuntu 16.04

Publicado por Jose Maria Hidalgo Garcia el

DevOpsOpenShift

En este post se describirá el proceso de instalación de Openshift Origin sobre Ubuntu 16.04.

Antes de comenzar un breve resumen de las versiones a instalar:

Producto Version Componentes Version
Openshift Origin v1.2.1
etcd v2.2.5
Kubernetes v1.2.1
Docker v1.9.1

0: Instalar Docker version específica de Docker

wget -O docker.deb https://apt.dockerproject.org/repo/pool/main/d/docker-engine/docker-engine_1.9.1-0~wily_amd64.deb  
sudo dpkg -i docker.deb  

1: Descargar los binarios de Openshift

mkdir /opt/openshift-origin-v1.2  
chmod 755 /opt /opt/openshift-origin-v1.2  
cd /opt/openshift-origin-v1.2  
wget https://github.com/openshift/origin/releases/download/v1.2.1/openshift-origin-server-v1.2.1-5e723f6-linux-64bit.tar.gz  
tar -zxvf openshift-origin-server-*.tar.gz --strip-components 1  
rm -f openshift-origin-server-*.tar.gz  

2: Configurar las variables del sistema

cat > /etc/profile.d/openshift.sh << '__EOF__'  
export OPENSHIFT=/opt/openshift-origin-v1.2  
export OPENSHIFT_VERSION=v1.2.1  
export PATH=$OPENSHIFT:$PATH  
export KUBECONFIG=$OPENSHIFT/openshift.local.config/master/admin.kubeconfig  
export CURL_CA_BUNDLE=$OPENSHIFT/openshift.local.config/master/ca.crt  
__EOF__  

Cargar las variables en el usuario

chmod 755 /etc/profile.d/openshift.sh  
. /etc/profile.d/openshift.sh

3: Descargar las imagenes docker de Openshift

docker pull openshift/origin-pod:$OPENSHIFT_VERSION  
docker pull openshift/origin-sti-builder:$OPENSHIFT_VERSION  
docker pull openshift/origin-docker-builder:$OPENSHIFT_VERSION  
docker pull openshift/origin-deployer:$OPENSHIFT_VERSION  
docker pull openshift/origin-docker-registry:$OPENSHIFT_VERSION  
docker pull openshift/origin-haproxy-router:$OPENSHIFT_VERSION  

4: Generar la configuración de ficheros de Openshift

./openshift start --write-config=openshift.local.config
chmod 777 $OPENSHIFT/openshift.local.config/master/admin.kubeconfig  
chmod ugo+r $OPENSHIFT/openshift.local.config/master/openshift-registry.kubeconfig  
chmod ugo+r $OPENSHIFT/openshift.local.config/master/openshift-router.kubeconfig  

4a Opcional: cambiar el subdominio de router en master-config.yaml

sed -i 's/router.default.svc.cluster.local/apps.local.host/' \  
  $OPENSHIFT/openshift.local.config/master/master-config.yaml

4b Opcional: Reglas de firewall si procede

firewall-cmd --permanent --zone=public --add-port=80/tcp  
firewall-cmd --permanent --zone=public --add-port=443/tcp  
firewall-cmd --permanent --zone=public --add-port=8443/tcp  
firewall-cmd --reload  

4c: Arrancar OpenShift

./openshift start &
Ya tenemos disponible la instalación básica de Openshift.

Comprobar el login en Openshift

oc login -u system:admin -n default  
You have access to the following projects and can switch between them with 'oc project ':
  • default (current)
  • openshift
  • openshift-infra
Using project "default".

5 Configurar Openshift

5a: Crear un usuario de administración

Ejecutar la siguiente instrucción para crear un usuario administrador:

oadm policy add-cluster-role-to-user cluster-admin admin  

Es posible que se reciba el siguiente error:

ERROR: error: username system:admin is invalid for basic auth https://bugzilla.redhat.com/show_bug.cgi?id=1268126

Para corregirlo:

sudo chmod 777 /opt/openshift-origin-v1.2/openshift.local.config/master/admin.kubeconfig  
oc login -u system:admin -n default  

5b Instalar un Docker Registry integrado

mkdir /opt/openshift-registry  
oadm policy add-scc-to-user privileged -z registry  
oadm registry --service-account=registry --mount-host=/opt/openshift-registry  

Comprobar que el servicio de Docker Registry está configurado correctamente

oc get svc docker-registry  
NAME              CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE docker-registry   172.30.1.10           5000/TCP   10m

5c: Instalar Router

oadm policy add-scc-to-user hostnetwork -z router  
oadm router router --replicas=1 --service-account=router  

Comprobar el estado

oc status  
In project default on server https://192.168.2.130:8443  svc/docker-registry - 172.30.1.10:5000 dc/docker-registry deploys docker.io/openshift/origin-docker-registry:v1.2.1 deployment #1 deployed 9 minutes ago - 1 pod
svc/kubernetes - 172.30.0.1 ports 443, 53, 53
svc/router - 172.30.30.140 ports 80, 443, 1936 dc/router deploys docker.io/openshift/origin-haproxy-router:v1.2.1 deployment #1 deployed 2 minutes ago - 1 pod

En siguientes entradas del blog se explicará como orquestar despliegues sobre Openshift.

¡Síguenos en Twitter para recibir nuevos posts!.

Autor

Jose Maria Hidalgo Garcia

Arquitecto software y apasionado por todo lo que rodea al movimiento DevOps. Me encanta el terminal y tener todo automatizado en los proyectos en los que participo.
Twitter: @jhidalgo3