Despliegue de una aplicación con la utilidad de línea de comandos oc
Una vez que nos hemos conectado a nuestro cluster y hemos creado un proyecto, vamos a crear nuestra aplicación. En este caso, volvemos a desplegar la misma aplicación que en el ejemplo anterior, usando source2image.
Para ver todos recursos del catálogo que podemos utilizar:
$ oc new-app --list
Seguimos los mismos pasos, del catálogo elegimos la imagen de php y la versión, para buscar imágenes:
$ oc new-app --search php
A continuación creamos la nueva aplicación indicando la imagen, el repositorio donde esta el código e indicando un nombre:
$ oc new-app php:7.1~https://github.com/josedom24/html_for_openshift.git --name prueba
Podemos ver el estado de nuestra aplicación ejecutando:
$ oc status
In project miproyecto1 on server https://api.starter-us-west-2.openshift.com:443
svc/prueba - 172.30.27.139 ports 8080, 8443
dc/prueba deploys istag/prueba:latest <-
bc/prueba source builds https://github.com/josedom24/html_for_openshift.git on openshift/php:7.1
deployment #1 deployed 37 seconds ago - 1 pod
Como podemos observar se ha creado un build:
$ oc get bc
NAME TYPE FROM LATEST
prueba Source Git 1
$ oc describe bc/prueba
Se ha creado un despliegue:
$ oc get dc
NAME REVISION DESIRED CURRENT TRIGGERED BY
prueba 1 1 1 config,image(prueba:latest)
$ oc describe dc/prueba
Y podemos ver los pods que se han creado:
$ oc get pods
NAME READY STATUS RESTARTS AGE
prueba-1-build 0/1 Completed 0 5m
prueba-1-n6lmz 1/1 Running 0 4m
$ oc describe pod/prueba-1-n6lmz
Para ver los logs de un build:
$ oc logs bc/prueba
Para ver los logs de un determinado despliegue:
$ oc logs dc/prueba
Y, por ejemplo, para ejecutar un comando en un determinado pod:
$ oc exec prueba-1-n6lmz -it /bin/bash
También podemos ejecutar el siguiente comando para acceder al pod:
$ oc rsh prueba-1-n6lmz
Accediendo a nuestra aplicación
Cuando hemos creado una aplicación se ha creado un servicio:
$ oc get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
prueba ClusterIP 172.30.27.139 <none> 8080/TCP,8443/TCP 10m
Pero debemos crear una ruta para poder acceder a dicha aplicación, para ello:
$ oc expose svc/prueba
route.route.openshift.io/prueba exposed
$ oc get routes
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
prueba prueba-miproyecto1.7e14.starter-us-west-2.openshiftapps.com prueba 8080-tcp None
Y ya podemos acceder a la aplicación usando la URL prueba-miproyecto1.7e14.starter-us-west-2.openshiftapps.com
.