OKD: Crear ruta / dominios de aplicaciones / Ampliar replicas control ingress / Certificado Wild

Introducción

  • Para realizar esta prueba primero debe tener creado un deploy con un servicio relacionado
  • Deploy
  • Servicio
  • El cual mapea un puerto en esta caso puerto 80

Creación de ruta

  • Ahora para crear la ruta la podemos hacer con comando exponiendo el servicio
oc expose svc web1-svc
  • O con la interfaz gráfica
  • NOTA:Si en el fomulario no ponemos un «nombre de host» una URL el crea una
  • Nombre: Nombre de la ruta
  • Nombre del host: dominio / URL
  • Servicio: servicio que se va a exponer
  • Puerto destino
  • Por ejemplo
  • Ahora si colocamos una url nosotros
  • Y tratamos de ingresar
  • No ingresa por que no existe una resolusión DNS

Conocimiento: Control Ingress

  • En OKD la rutas funcionan con un pod de router (HAProxy) para gestionar todas las rutas del cluster
  • Con este comando podemos obtener los pods de los openshift-ingress que hacen esta tarea
oc get pods -n openshift-ingress -o wide
  • Aqui podemos ver los pods de control ingress asi como las ip’s y worker que los estan corriendo
  • Como se puede ver aunque se cuente con 3 worker solo se tiene 2 pods
  • Esto es por que el cluster tiene en su configuración que solo se tengan 2 replicas, esto lo podemos ver con el comando
oc get deployment -n openshift-ingress

¿Por qué se hace así?

Porque:

  • Tener múltiples routers en todos los nodos worker no siempre es necesario.
  • Cada pod del router (HAProxy) escucha en los puertos 80/443 del nodo donde corre.
  • Usualmente, el tráfico externo entra a través de un LoadBalancer externo, VIP, o DNS round-robin hacia los nodos donde están los routers.

Entonces, mientras tengas al menos 2 routers en nodos diferentes (por alta disponibilidad), el sistema funciona perfectamente.

Aumentar replicas ControlIngress

  • Entonces si deseamos aumentar la cantidad de replicas
  • Primero debemos entender que En OKD/OpenShift, los pods del router son manejados por un recurso llamado IngressController
  • Si queremos comprobar que existe
oc get ingresscontroller -n openshift-ingress-operator
  • Y si describimos este servicio
oc describe ingresscontroller default -n openshift-ingress-operator
  • Podemos observar que esta configurado para 2 replicas
  • Entonces para modificar la cantidad de replicas editamos este operador (con editor nano)
EDITOR=nano oc edit ingresscontroller default -n openshift-ingress-operator
  • Buscamos la sección de spec -> replicas
  • Modificamos
  • Y podemos verificar
oc get pods -n openshift-ingress -o wide
  • Y comprobar que ya existe un control ingress en cada worker

Prueba de dominio

  • Ahora ya tenemos un haproxy que sirve de balanceador para las aplicaciones 10.0.2.234
  • por tanto podemos modificar el archivo (en la maquina física local)
sudo nano /etc/hosts
  • Y agregamos
10.0.2.234   prueba.una.ac.cr
  • Probamos

Agregar certificado

  • Ahora para ponerle un certificado a la aplicación
  • los obtenemos (maquina local)
cd /home/tavo/Escritorio/
mkdir certificados
cd certificados/

scp -r root@10.0.2.30:/etc/letsencrypt/live/CERTIFICADOWILDCOMODO/2025/STAR_una_ac_cr.crt .

scp -r root@10.0.2.30:/etc/letsencrypt/live/CERTIFICADOWILDCOMODO/2025/una.ac.cr.key .

scp -r root@10.0.2.30:/etc/letsencrypt/live/CERTIFICADOWILDCOMODO/2025/My_CA_Bundle.ca-bundle .
  • Creamos un full que contenga STAR y Bundle
cat STAR_una_ac_cr.crt My_CA_Bundle.ca-bundle > fullcert.crt
  • Vamos a la web y ubicamos la ruta
  • Editar la ruta
  • NOTA: Estamos en el puerto 80 (es lo que tiene configurado el servicio)
  • Marcamos la opción de Ruta Segura
  • Terminación TLS: Edge
  • Trafico inseguro: redirigir

  • Certificado: el full que acabamos de crear
  • Lo abrimos o pegamos el contenido
  • Clave privada: una.ac.cr.key
  • Y ya sirve el certificado