Cómo instalar y configurar el servidor PaaS de OpenShift Origin en Ubuntu 18.04
OpenShift es una plataforma como servicio gratuita y de código abierto desarrollada por Red Hat. OpenShift se utiliza para desarrollar, alojar y escalar aplicaciones en el entorno de la nube. OpenShift es compatible con muchos lenguajes, como Java EE6, Ruby, PHP, Python, Perl, MongoDB, MySQL y PostgreSQL. OpenShift es una plataforma de aplicaciones Kubernetes líder en la nube y para empresas en la que confían más de 1000 compañías. Openshift te permite crear, modificar y desplegar aplicaciones según tus necesidades.
En este tutorial, aprenderemos a instalar OpenShift Origin de un solo nodo en un servidor Ubuntu 18.04 LTS.
Requisitos
- Un servidor que ejecute Ubuntu 18.04 con un mínimo de 2 GB de RAM.
- Una contraseña de root configurada en el servidor.
Cómo empezar
Antes de empezar, actualiza tu sistema con la última versión estable. Puedes hacerlo con el siguiente comando:
apt-get update -y
apt-get upgrade -y
Una vez actualizado, reinicia tu servidor para aplicar todos los cambios de configuración.
Instala Docker CE
OpenShift se ejecuta en un contenedor Docker. Por tanto, tendrás que instalar Docker CE en tu servidor. Por defecto, la última versión de Docker CE no está disponible en el repositorio por defecto de Ubuntu 18.04. Así que tendrás que añadir el repositorio de Docker CE a tu sistema.
Para instalar Docker CE, descarga y añade la clave GPG de Docker con el siguiente comando:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
Una vez añadida, añade el repositorio de Docker CE con el siguiente comando:
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
A continuación, actualiza e instala Docker CE con el siguiente comando:
apt-get update -y
apt-get install docker-ce -y
Una vez instalado, comprueba el estado de Docker CE con el siguiente comando:
systemctl status docker
Deberías ver la siguiente salida:
? docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-08-07 08:06:57 UTC; 33s ago Docs: https://docs.docker.com Main PID: 19052 (dockerd) Tasks: 8 CGroup: /system.slice/docker.service ??19052 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.372084572Z" level=warning msg="Your kernel does not support swap memory limit" Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.372483783Z" level=warning msg="Your kernel does not support cgroup rt period" Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.372711298Z" level=warning msg="Your kernel does not support cgroup rt runtime" Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.373275104Z" level=info msg="Loading containers: start." Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.612047102Z" level=info msg="Default bridge (docker0) is assigned with an IP ad Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.712918131Z" level=info msg="Loading containers: done." Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.938574106Z" level=info msg="Docker daemon" commit=74b1e89 graphdriver(s)=overl Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.939341612Z" level=info msg="Daemon has completed initialization" Aug 07 08:06:57 hitesh systemd[1]: Started Docker Application Container Engine. Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.989385865Z" level=info msg="API listen on /var/run/docker.sock"
Una vez hecho esto, puedes pasar al siguiente paso.
Instalar OpenShift
En primer lugar, tendrás que descargar la última versión estable de OpenShift desde el repositorio Git. Puedes descargar la última versión de OpenShift del repositorio Git con el siguiente comando:
cd /opt
wget https://github.com/openshift/origin/releases/download/v3.9.0/openshift-origin-client-tools-v3.9.0-191fece-linux-64bit.tar.gz
Una vez descargada, extrae el archivo descargado con el siguiente comando:
tar -zvxf openshift-origin-client-tools-v3.9.0-191fece-linux-64bit.tar.gz
A continuación, cambia el directorio a extraído y copia el binario oc al directorio /usr/local/bin con el siguiente comando:
cd openshift-origin-client-tools-v3.9.0-191fece-linux-64bit
cp oc /usr/local/bin/
Ahora puedes verificar la versión de oc con el siguiente comando:
oc version
Deberías ver la siguiente salida:
oc v3.9.0+191fece kubernetes v1.9.1+a0ce1bc657 features: Basic-Auth GSSAPI Kerberos SPNEGO
A continuación, tendrás que añadir el registro inseguro al demonio Docker. Puedes hacerlo con el siguiente comando:
nano /etc/docker/daemon.json
Añade las siguientes líneas:
{ "insecure-registries" : [ "172.30.0.0/16" ] }
Guarda y cierra el archivo, cuando hayas terminado. A continuación, reinicia el servicio Docker para aplicar los cambios de configuración:
systemctl restart docker
Una vez hecho esto, puedes pasar al siguiente paso.
Iniciar el clúster de OpenShift
Ahora, inicia el clúster de OpenShift especificando tu dirección IP o nombre de host como se muestra a continuación:
oc cluster up --public-hostname=38.143.69.14
Una vez que el servidor se haya iniciado con éxito, deberías ver la siguiente salida:
WARNING: Binding DNS on port 8053 instead of 53, which may not be resolvable from all clients. Using Docker shared volumes for OpenShift volumes Using public hostname IP 38.143.69.14 as the host IP Using 38.143.69.14 as the server IP Starting OpenShift using openshift/origin:v3.9.0 ... OpenShift server started. The server is accessible via web console at: https://38.143.69.14:8443 You are logged in as: User: developer Password:To login as administrator: oc login -u system:admin
Nota: Sustituye la dirección IP de tu servidor por 38.143.69.14.
Ahora, inicia sesión en tu clúster con el siguiente comando:
oc login -u system:admin
Deberías ver la siguiente salida:
Logged into "https://38.143.69.14:8443" as "system:admin" using existing credentials. You have access to the following projects and can switch between them with 'oc project': default kube-public kube-system * myproject openshift openshift-infra openshift-node openshift-web-console Using project "myproject".
Ahora, puedes cambiar el proyecto por defecto con el siguiente comando:
oc project default
Deberías ver la siguiente salida:
Now using project "default" on server "https://38.143.69.14:8443".
Ahora puedes comprobar el estado del proyecto con el siguiente comando
oc status
Deberías ver la siguiente salida:
In project default on server https://38.143.69.14:8443 svc/docker-registry - 172.30.1.1:5000 dc/docker-registry deploys docker.io/openshift/origin-docker-registry:v3.9.0 deployment #1 deployed 3 minutes ago - 1 pod svc/kubernetes - 172.30.0.1 ports 443->8443, 53->8053, 53->8053 svc/router - 172.30.106.228 ports 80, 443, 1936 dc/router deploys docker.io/openshift/origin-haproxy-router:v3.9.0 deployment #1 deployed 3 minutes ago - 1 pod View details with 'oc describe/ ' or list everything with 'oc get all'.
Crear un proyecto de prueba en OpenShift
Ahora OpenShift está instalado y funcionando. A continuación, inicia sesión en OpenShift con el usuario desarrollador:
oc login
Proporciona el nombre de usuario y la contraseña como desarrollador / developer y pulsa enter. Deberías ver la siguiente salida:
Authentication required for https://38.143.69.14:8443 (openshift) Username: developer Password: Login successful. You have one project on this server: "myproject" Using project "myproject".
Ahora, crea un nuevo proyecto de prueba con el siguiente comando:
oc new-project dev --display-name="test - Dev" --description="Test Project"
Deberías ver la siguiente salida:
Now using project "dev" on server "https://38.143.69.14:8443". You can add applications to this project with the 'new-app' command. For example, try: oc new-app centos/ruby-22-centos7~https://github.com/openshift/ruby-ex.git to build a new example application in Ruby.
A continuación, construye una nueva aplicación Ruby en este proyecto con el siguiente comando:
oc new-app centos/ruby-22-centos7~https://github.com/openshift/ruby-ex.git
Ahora, comprueba el estado del proyecto actual con el siguiente comando:
oc status
Deberías ver la siguiente salida:
In project test - Dev (dev) on server https://38.143.69.14:8443 svc/ruby-ex - 172.30.16.207:8080 dc/ruby-ex deploys istag/ruby-ex:latest <- bc="" ruby-ex="" source="" builds="" https:="" github="" com="" openshift="" git="" on="" istag="" ruby-22-centos7:latest="" build="" 1="" running="" for="" 54="" seconds="" -="" c00ecd7:="" merge="" pull="" request="" 25="" from="" pvalena="" master="" honza="" horak="" hhorak="" redhat="">) deployment #1 waiting on image or update
Una vez hecho esto, puedes pasar al siguiente paso.
Accede a la Consola Web de OpenShift
Ahora, abre tu navegador web y escribe la URL https://your-server-ip:8443. Serás redirigido a la siguiente página:
Proporciona tu nombre de usuario y contraseña de desarrollador. A continuación, haz clic en el botón Iniciar sesión. Deberías ver el panel de control por defecto de OpenShift en la siguiente página:
Ahora, haz clic en Mi Proyecto en el lado derecho. Deberías ver la siguiente página:
Ahora, haz clic en la prueba – Dev. Deberías ver tu aplicación Ruby desplegada en la siguiente página:
Enhorabuena! has instalado y configurado correctamente OpenShift en el servidor Ubuntu 18.04. Puedes crear un nuevo proyecto y desplegar tu propia aplicación con OpenShift. No dudes en preguntarme si tienes alguna duda. Este artículo no está recomendado para su uso en producción. Para más información puedes consultar la documentación oficial de OpenShift.