OpenShift es una plataforma como servicio (PaaS) de desarrollo en la nube, gratuita y de código abierto desarrollada por Red Hat que permite a los desarrolladores desarrollar e implementar sus aplicaciones en una infraestructura en la nube. . Es una distribución comunitaria de Kubernetes y permite ciclos de desarrollo y lanzamiento más rápidos para las aplicaciones. Viene con una interfaz web simple y fácil de usar que le permite monitorear los recursos del contenedor, el estado del contenedor, los nodos en los que residen los contenedores, las direcciones IP de los nodos, etc.
En este tutorial, explicaremos cómo instalar OpenShift Origin en el servidor Ubuntu 20.04.
Requisitos
- Un servidor con Ubuntu 20.04.
- Se ha configurado una contraseña raíz en su servidor.
Instalar Docker CE
Primero, deberá instalar Docker CE en su sistema para ejecutar todos los servicios de OKD en contenedores docker. De manera predeterminada, la última versión de Docker CE está disponible en el repositorio predeterminado de Ubuntu 20.04. Puede instalarlo simplemente ejecutando el siguiente comando:
apt-get install docker.io -y
Una vez que Docker esté instalado, inicie el servicio Docker y habilítelo para que se inicie en el arranque con el siguiente comando:
systemctl start docker
systemctl enable docker
También puede verificar el estado del servicio Docker con el siguiente comando:
systemctl status docker
Debería ver el siguiente resultado:
? docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2020-05-29 12:25:47 UTC; 2s ago TriggeredBy: ? docker.socket Docs: https://docs.docker.com Main PID: 48433 (dockerd) Tasks: 10 Memory: 36.5M CGroup: /system.slice/docker.service ??48433 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.215078550Z" level=warning msg="Your kernel does not support swap memory l> May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.215139097Z" level=warning msg="Your kernel does not support cgroup blkio > May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.215169580Z" level=warning msg="Your kernel does not support cgroup blkio > May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.215721944Z" level=info msg="Loading containers: start." May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.418058547Z" level=info msg="Default bridge (docker0) is assigned with an > May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.515158041Z" level=info msg="Loading containers: done." May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.545778830Z" level=info msg="Docker daemon" commit=afacb8b7f0 graphdriver(> May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.546068892Z" level=info msg="Daemon has completed initialization" May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.599029431Z" level=info msg="API listen on /run/docker.sock" May 29 12:25:47 ubuntu2004 systemd[1]: Started Docker Application Container Engine.
En este punto, Docker está instalado y ejecutándose. Ahora puede continuar con el siguiente paso.
Descargar OpenShift Origin
Al momento de escribir este tutorial, la última versión de OpenShift Origin es v3.11.0. Puede descargarlo desde el repositorio de Git Hub usando el siguiente comando:
wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:
tar -xvzf openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
A continuación, cambie el directorio al directorio extraído y copie los binarios kubectl y oc al directorio /usr/local/bin.
cd openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit
cp oc kubectl /usr/local/bin/
A continuación, verifique la instalación de la utilidad de cliente OpenShift con el siguiente comando:
oc version
Debería ver el siguiente resultado:
oc v3.11.0+0cbc58b kubernetes v1.11.0+d4cacc0 features: Basic-Auth GSSAPI Kerberos SPNEGO
A continuación, deberá crear un nuevo archivo daemon.json y permitir el uso del registro Insecure Docker.
nano /etc/docker/daemon.json
Agregue la siguiente línea:
{ "insecure-registries" : [ "172.30.0.0/16" ] }
Guarde y cierre el archivo, luego reinicie el servicio Docker para implementar los cambios.
systemctl restart docker
Iniciar clúster de origen de OpenShif
Ahora, inicie el clúster de OpenShift Origin especificando la IP de su sistema:
oc cluster up --public-hostname=your-server-ip
Una vez que el servidor se inició correctamente, debería obtener el siguiente resultado:
Login to server ... Creating initial project "myproject" ... Server Information ... OpenShift server started. The server is accessible via web console at: https://your-server-ip:8443 You are logged in as: User: developer Password: To login as administrator: oc login -u system:admin
Ahora, inicie sesión en su clúster como usuario administrador con el siguiente comando:
oc login -u system:admin
Una vez que inicie sesión, debería obtener el siguiente resultado:
Logged into "https://your-server-ip:8443" as "system:admin" using existing credentials. You have access to the following projects and can switch between them with 'oc project': default kube-dns kube-proxy kube-public kube-system * myproject openshift openshift-apiserver openshift-controller-manager openshift-core-operators openshift-infra openshift-node openshift-service-cert-signer openshift-web-console Using project "myproject".
A continuación, cambie al proyecto predeterminado con el siguiente comando:
oc project default
Salida:
Now using project "default" on server "https://your-server-ip:8443".
Ahora, verifica el estado actual de tu proyecto con el siguiente comando:
oc status
Deberías obtener el siguiente resultado:
In project default on server https://your-server-ip:8443 svc/docker-registry - 172.30.1.1:5000 dc/docker-registry deploys docker.io/openshift/origin-docker-registry:v3.11 deployment #1 deployed 2 minutes ago - 1 pod svc/kubernetes - 172.30.0.1:443 -> 8443 svc/router - 172.30.94.157 ports 80, 443, 1936 dc/router deploys docker.io/openshift/origin-haproxy-router:v3.11 deployment #1 deployed 2 minutes ago - 1 pod View details with 'oc describe/ ' or list everything with 'oc get all'.
Crear proyecto en OpenShift
Ahora, inicie sesión en OpenShift con el usuario desarrollador con el siguiente comando:
oc login
Se le pedirá que proporcione un nombre de usuario y una contraseña como se muestra a continuación:
Authentication required for https://your-server-ip:8443 (openshift) Username: developer Password:
Proporcione el nombre de usuario como desarrollador y la contraseña como desarrollador, y presione Entrar. Debería ver el siguiente resultado:
Login successful. You have one project on this server: "myproject" Using project "myproject".
Para crear un nuevo proyecto, ejecute el siguiente comando:
oc new-project dev --display-name="Project - Dev" --description="My Project"
Debería ver el siguiente resultado:
Now using project "dev" on server "https://your-server-ip:8443". You can add applications to this project with the 'new-app' command. For example, try: oc new-app centos/ruby-25-centos7~https://github.com/sclorg/ruby-ex.git to build a new example application in Ruby.
Acceder a la consola web de OpenShift
Ahora, abra su navegador web y escriba la URL https://your-server-ip:8443/console. Debería ver la página de inicio de sesión de OpenShift:
Proporcione su nombre de usuario y contraseña de desarrollador y haga clic en Iniciar sesión En botón. Debería ver la siguiente página:
Haga clic en Crear Proyecto botón. Debería ver la siguiente página:
Proporcione toda la información requerida y haga clic en Crear botón para crear un nuevo proyecto.
Implementar aplicación en OpenShift Origin
Primero, inicie sesión en OpenShift con el usuario desarrollador ejecutando el siguiente comando:
oc login
Inicie sesión con el usuario desarrollador como se muestra a continuación:
Authentication required for https://your-server-ip:8443 (openshift) Username: developer Password: Login successful. You have access to the following projects and can switch between them with 'oc project': * dev my-project myproject Using project "dev".
Una vez que inicie sesión, cambie el proyecto a mi proyecto que ha creado a través de la consola web de OpenShift:
oc project my-project
Salida:
Now using project "my-project" on server "https://your-server-ip:8443".
A continuación, verifica el estado de tu proyecto actual con el siguiente comando:
oc status
Salida:
In project My Project (my-project) on server https://your-server-ip:8443 You have no services, deployment configs, or build configs. Run 'oc new-app' to create an application.
A continuación, etiquete una imagen de aplicación del registro de Docker Hub con el siguiente comando:
oc tag --source=docker openshift/deployment-example:v2 deployment-example:latest
Salida:
Tag deployment-example:latest set to openshift/deployment-example:v2.
A continuación, implemente una aplicación en OpenShift con el siguiente comando:
oc new-app deployment-example
Debería ver el siguiente resultado:
--> Found image da61bb2 (4 years old) in image stream "my-project/deployment-example" under tag "latest" for "deployment-example" * This image will be deployed in deployment config "deployment-example" * Port 8080/tcp will be load balanced by service "deployment-example" * Other containers can access this service through the hostname "deployment-example" * WARNING: Image "my-project/deployment-example:latest" runs as the 'root' user which may not be permitted by your cluster administrator --> Creating resources ... deploymentconfig.apps.openshift.io "deployment-example" created service "deployment-example" created --> Success Application is not exposed. You can expose services to the outside world by executing one or more of the commands below: 'oc expose svc/deployment-example' Run 'oc status' to view your app.
Ahora, verifique el estado de implementación de la aplicación con el siguiente comando:
oc status
Debería ver el siguiente resultado:
In project My Project (my-project) on server https://your-server-ip:8443 svc/deployment-example - 172.30.87.146:8080 dc/deployment-example deploys istag/deployment-example:latest deployment #1 deployed 36 seconds ago - 1 pod 2 infos identified, use 'oc status --suggest' to see details.
Para obtener información sobre su servicio, ejecute el siguiente comando:
oc get svc
Salida:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE deployment-example ClusterIP 172.30.87.1468080/TCP 1m
Para obtener información detallada, ejecute el siguiente comando:
oc describe svc deployment-example
Salida:
Name: deployment-example Namespace: my-project Labels: app=deployment-example Annotations: openshift.io/generated-by=OpenShiftNewApp Selector: app=deployment-example,deploymentconfig=deployment-example Type: ClusterIP IP: 172.30.87.146 Port: 8080-tcp 8080/TCP TargetPort: 8080/TCP Endpoints: 172.17.0.10:8080 Session Affinity: None Events:
También puede verificar el estado de los Pods usando el siguiente comando:
oc get pods
Salida:
NAME READY STATUS RESTARTS AGE deployment-example-1-b9prf 1/1 Running 0 2m
Ahora, exponga la aplicación para acceso externo usando el siguiente comando:
oc expose service/deployment-example
Salida:
route.route.openshift.io/deployment-example exposed
Para mostrar la información de las rutas, ejecute el siguiente comando:
oc get routes
Deberías obtener el siguiente resultado:
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD deployment-example deployment-example-my-project.your-server-ip.nip.io deployment-example 8080-tcp None
Verificar acceso externo
Ahora, su aplicación está lista para el acceso externo. Abra su navegador web y escriba la URL anterior http://deployment-example-my-project.your-server-ip.nip.io. Debería ver su solicitud en la siguiente página:
Si desea eliminar su aplicación, ejecute el siguiente comando:
oc delete all -l app=deployment-example
Debería ver el siguiente resultado:
pod "deployment-example-1-b9prf" deleted replicationcontroller "deployment-example-1" deleted service "deployment-example" deleted deploymentconfig.apps.openshift.io "deployment-example" deleted route.route.openshift.io "deployment-example" deleted
Conclusión
En este artículo, instalamos y configuramos con éxito OpenShift Origin de un solo nodo en Ubuntu 20.04. Ahora puede comenzar a desarrollar su primera aplicación en el entorno OpenShift. no dude en preguntarme si tiene alguna pregunta.