{"id":22374,"date":"2026-01-08T10:11:09","date_gmt":"2026-01-08T16:11:09","guid":{"rendered":"https:\/\/sada.services\/?p=22374"},"modified":"2026-01-08T14:50:50","modified_gmt":"2026-01-08T20:50:50","slug":"okd-prueba-de-microservicios","status":"publish","type":"post","link":"https:\/\/sada.services\/?p=22374","title":{"rendered":"OKD: Prueba de Microservicios"},"content":{"rendered":"\n<ul class=\"wp-block-list\">\n<li>Esta guia<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Crear Proyecto<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El primer paso es crear un proyecto <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"250\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_204-1024x250.png\" alt=\"\" class=\"wp-image-22375\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_204-1024x250.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_204-300x73.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_204-768x187.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_204-1536x375.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_204.png 1894w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Completamos el formulario<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"591\" height=\"514\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_205.png\" alt=\"\" class=\"wp-image-22376\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_205.png 591w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_205-300x261.png 300w\" sizes=\"(max-width: 591px) 100vw, 591px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se crea<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"523\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_206-1024x523.png\" alt=\"\" class=\"wp-image-22377\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_206-1024x523.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_206-300x153.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_206-768x392.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_206-1536x785.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_206.png 1572w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PENDIENTE: <\/li>\n\n\n\n<li>Se ejecuta permisos para correr como root, desde el provisioner<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>oc adm policy add-scc-to-user anyuid -z default -n tavo-prueba-microservicios<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">2. Crear ConfigMaps: productos.json<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ahora en la maquina local creamos un archivo productos.json<\/li>\n\n\n\n<li>y le agregamos<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;\n  {\n    \"id\": 1,\n    \"nombre\": \"Martillo\",\n    \"precio\": 8.50,\n    \"categoria\": \"Herramientas\"\n  },\n  {\n    \"id\": 2,\n    \"nombre\": \"Taladro\",\n    \"precio\": 55.00,\n    \"categoria\": \"El\u00e9ctricas\"\n  },\n  {\n    \"id\": 3,\n    \"nombre\": \"Destornillador\",\n    \"precio\": 3.25,\n    \"categoria\": \"Herramientas\"\n  }\n]<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ahora vamos a crear un<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"472\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_208-1024x472.png\" alt=\"\" class=\"wp-image-22379\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_208-1024x472.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_208-300x138.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_208-768x354.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_208-1536x708.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_208.png 1872w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nombre: <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>productos.json<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clave: <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>productos.json<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"893\" height=\"748\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_210.png\" alt=\"\" class=\"wp-image-22381\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_210.png 893w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_210-300x251.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_210-768x643.png 768w\" sizes=\"(max-width: 893px) 100vw, 893px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">3. Crear ConfigMaps: proveedores.json<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ahora en la maquina local creamos un archivo proveedores.json<\/li>\n\n\n\n<li>y le agregamos<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;\n  {\n    \"id\": 1,\n    \"nombre\": \"Ferreter\u00eda Central\",\n    \"pais\": \"Costa Rica\"\n  },\n  {\n    \"id\": 2,\n    \"nombre\": \"Herramientas Global\",\n    \"pais\": \"M\u00e9xico\"\n  }\n]\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ahora vamos a crear un<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"472\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_208-1024x472.png\" alt=\"\" class=\"wp-image-22379\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_208-1024x472.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_208-300x138.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_208-768x354.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_208-1536x708.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_208.png 1872w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nombre: <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>proveedores-json<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clave: <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>proveedores.json<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Valor: navegar y cargamos el archivo<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"898\" height=\"797\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_211.png\" alt=\"\" class=\"wp-image-22382\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_211.png 898w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_211-300x266.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_211-768x682.png 768w\" sizes=\"(max-width: 898px) 100vw, 898px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">4. Crear Implementaci\u00f3n\/deploy: api-productos<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"405\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_212-1024x405.png\" alt=\"\" class=\"wp-image-22385\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_212-1024x405.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_212-300x119.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_212-768x304.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_212-1536x608.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_212.png 1867w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>YAML<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: api-productos\n  namespace: tavo-prueba-microservicios\nspec:\n  replicas: 2\n  selector:\n    matchLabels:\n      app: api-productos\n  template:\n    metadata:\n      labels:\n        app: api-productos\n    spec:\n      containers:\n        - name: nginx\n          image: nginx:1.25\n          ports:\n            - containerPort: 80\n          volumeMounts:\n            - name: productos-json\n              mountPath: \/usr\/share\/nginx\/html\/productos.json\n              subPath: productos.json\n      volumes:\n        - name: productos-json\n          configMap:\n            name: productos-json\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Crear<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"482\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_213-1024x482.png\" alt=\"\" class=\"wp-image-22386\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_213-1024x482.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_213-300x141.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_213-768x362.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_213-1536x723.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_213.png 1862w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se crea<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"509\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_214-1024x509.png\" alt=\"\" class=\"wp-image-22388\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_214-1024x509.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_214-300x149.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_214-768x382.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_214-1536x764.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_214.png 1612w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si regresamos a Cargas de Trabajo -> Implementaciones <\/li>\n\n\n\n<li>Vemos que tenemos la implementaci\u00f3n funcionando y que tiene un selector de pods el cual utilizamos para crear el servicio<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"401\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_215-1024x401.png\" alt=\"\" class=\"wp-image-22389\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_215-1024x401.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_215-300x117.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_215-768x300.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_215-1536x601.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_215.png 1879w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>app=api-productos<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ahora para probar si esta funcionado vamos a Cargas de Trabajo -> Pods y abrimos uno<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"328\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_221-1024x328.png\" alt=\"\" class=\"wp-image-22398\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_221-1024x328.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_221-300x96.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_221-768x246.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_221-1536x492.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_221.png 1869w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vamos al tab de \u00abTerminal\u00bb y ejecutamos<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>curl http:\/\/localhost\/productos.json<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nos debe regresar el valor <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"778\" height=\"819\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_222.png\" alt=\"\" class=\"wp-image-22399\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_222.png 778w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_222-285x300.png 285w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_222-768x808.png 768w\" sizes=\"(max-width: 778px) 100vw, 778px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">5. Crear Servicio: producto<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"509\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_216-1024x509.png\" alt=\"\" class=\"wp-image-22391\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_216-1024x509.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_216-300x149.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_216-768x382.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_216-1536x763.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_216.png 1636w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>yaml<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: Service\nmetadata:\n  name: api-productos\n  namespace: tavo-prueba-microservicios\nspec:\n  selector:\n    app: api-productos\n  ports:\n    - port: 80\n      targetPort: 80\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lo creamos<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"720\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_217-1024x720.png\" alt=\"\" class=\"wp-image-22392\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_217-1024x720.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_217-300x211.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_217-768x540.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_217.png 1115w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se crea<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"514\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_218-1024x514.png\" alt=\"\" class=\"wp-image-22394\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_218-1024x514.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_218-300x150.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_218-768x385.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_218-1536x770.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_218.png 1585w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">6. Crear la ruta: productos<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"444\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_223-1024x444.png\" alt=\"\" class=\"wp-image-22401\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_223-1024x444.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_223-300x130.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_223-768x333.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_223-1536x666.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_223.png 1646w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>YAML<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: route.openshift.io\/v1\nkind: Route\nmetadata:\n  name: productos\n  namespace: tavo-prueba-microservicios\nspec:\n  host: productos.apps.okd.una.ac.cr\n  to:\n    kind: Service\n    name: api-productos\n  port:\n    targetPort: 80\n  tls:\n    termination: edge\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se crea<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"614\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_224-1024x614.png\" alt=\"\" class=\"wp-image-22403\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_224-1024x614.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_224-300x180.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_224-768x461.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_224.png 1355w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ahora si ingresamos a <\/li>\n\n\n\n<li><a href=\"https:\/\/productos.apps.okd.una.ac.cr\/\">https:\/\/productos.apps.okd.una.ac.cr\/<\/a><\/li>\n\n\n\n<li>vemos la pagina de nginx<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"258\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_225-1024x258.png\" alt=\"\" class=\"wp-image-22405\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_225-1024x258.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_225-300x75.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_225-768x193.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_225.png 1491w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Esto por que el configMap no modifica el index.html de nginx<\/li>\n\n\n\n<li>Si queremos ver el producto.json debemos hacer<\/li>\n\n\n\n<li><a href=\"https:\/\/productos.apps.okd.una.ac.cr\/productos.json\">https:\/\/productos.apps.okd.una.ac.cr\/productos.json<\/a><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"691\" height=\"431\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_226.png\" alt=\"\" class=\"wp-image-22406\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_226.png 691w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_226-300x187.png 300w\" sizes=\"(max-width: 691px) 100vw, 691px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">7. Crear Implementaci\u00f3n\/deploy: api-proveedores<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"405\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_212-1024x405.png\" alt=\"\" class=\"wp-image-22385\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_212-1024x405.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_212-300x119.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_212-768x304.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_212-1536x608.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_212.png 1867w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>YAML<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: api-proveedores\n  namespace: tavo-prueba-microservicios\nspec:\n  replicas: 2\n  selector:\n    matchLabels:\n      app: api-proveedores\n  template:\n    metadata:\n      labels:\n        app: api-proveedores\n    spec:\n      containers:\n        - name: nginx\n          image: nginx:1.25\n          ports:\n            - containerPort: 80\n          volumeMounts:\n            - name: proveedores-json\n              mountPath: \/usr\/share\/nginx\/html\/proveedores.json\n              subPath: proveedores.json\n      volumes:\n        - name: proveedores-json\n          configMap:\n            name: proveedores-json\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Crear<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"482\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_213-1024x482.png\" alt=\"\" class=\"wp-image-22386\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_213-1024x482.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_213-300x141.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_213-768x362.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_213-1536x723.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_213.png 1862w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se crea<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"509\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_214-1024x509.png\" alt=\"\" class=\"wp-image-22388\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_214-1024x509.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_214-300x149.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_214-768x382.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_214-1536x764.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_214.png 1612w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si regresamos a Cargas de Trabajo -&gt; Implementaciones <\/li>\n\n\n\n<li>Vemos que tenemos la implementaci\u00f3n funcionando y que tiene un selector de pods el cual utilizamos para crear el servicio<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"401\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_215-1024x401.png\" alt=\"\" class=\"wp-image-22389\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_215-1024x401.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_215-300x117.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_215-768x300.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_215-1536x601.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_215.png 1879w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>app=api-proveedores<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ahora para probar si esta funcionado vamos a Cargas de Trabajo -&gt; Pods y abrimos uno<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"328\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_221-1024x328.png\" alt=\"\" class=\"wp-image-22398\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_221-1024x328.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_221-300x96.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_221-768x246.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_221-1536x492.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_221.png 1869w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vamos al tab de \u00abTerminal\u00bb y ejecutamos<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>curl http:\/\/localhost\/proveedores.json<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nos debe regresar el valor <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"735\" height=\"639\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_227.png\" alt=\"\" class=\"wp-image-22407\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_227.png 735w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_227-300x261.png 300w\" sizes=\"(max-width: 735px) 100vw, 735px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">8. Crear Servicio: provedores<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"509\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_216-1024x509.png\" alt=\"\" class=\"wp-image-22391\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_216-1024x509.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_216-300x149.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_216-768x382.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_216-1536x763.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_216.png 1636w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>yaml<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: Service\nmetadata:\n  name: api-proveedores\n  namespace: tavo-prueba-microservicios\nspec:\n  selector:\n    app: api-proveedores\n  ports:\n    - port: 80\n      targetPort: 80\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lo creamos<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"720\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_217-1024x720.png\" alt=\"\" class=\"wp-image-22392\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_217-1024x720.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_217-300x211.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_217-768x540.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_217.png 1115w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se crea<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"514\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_218-1024x514.png\" alt=\"\" class=\"wp-image-22394\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_218-1024x514.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_218-300x150.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_218-768x385.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_218-1536x770.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_218.png 1585w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">9. Crear la ruta: productos<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"444\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_223-1024x444.png\" alt=\"\" class=\"wp-image-22401\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_223-1024x444.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_223-300x130.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_223-768x333.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_223-1536x666.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_223.png 1646w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>YAML<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: route.openshift.io\/v1\nkind: Route\nmetadata:\n  name: proveedores\n  namespace: tavo-prueba-microservicios\nspec:\n  host: proveedores.apps.okd.una.ac.cr\n  to:\n    kind: Service\n    name: api-proveedores\n  port:\n    targetPort: 80\n  tls:\n    termination: edge\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Esto indica que llega en 443 hasta el router<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>  tls:\n    termination: edge<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se crea<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"614\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_224-1024x614.png\" alt=\"\" class=\"wp-image-22403\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_224-1024x614.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_224-300x180.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_224-768x461.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_224.png 1355w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ahora si ingresamos a <\/li>\n\n\n\n<li><a href=\"http:\/\/proveedores.apps.okd.una.ac.cr\/\">http:\/\/proveedores.apps.okd.una.ac.cr\/<\/a><\/li>\n\n\n\n<li>vemos la pagina de nginx<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"258\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_225-1024x258.png\" alt=\"\" class=\"wp-image-22405\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_225-1024x258.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_225-300x75.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_225-768x193.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_225.png 1491w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Esto por que el configMap no modifica el index.html de nginx<\/li>\n\n\n\n<li>Si queremos ver el producto.json debemos hacer<\/li>\n\n\n\n<li><a href=\"http:\/\/proveedores.apps.okd.una.ac.cr\/proveedores.json\">http:\/\/proveedores.apps.okd.una.ac.cr\/proveedores.json<\/a><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"704\" height=\"377\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_228.png\" alt=\"\" class=\"wp-image-22408\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_228.png 704w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_228-300x161.png 300w\" sizes=\"(max-width: 704px) 100vw, 704px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">10. Crea ConfigMap index.html que consume los servicios<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>YAML<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: frontend-html\n  namespace: tavo-prueba-microservicios\ndata:\n  index.html: |\n    &lt;!DOCTYPE html>\n    &lt;html lang=\"es\">\n    &lt;head>\n      &lt;meta charset=\"UTF-8\">\n      &lt;title>Ferreter\u00eda - Microservicios&lt;\/title>\n      &lt;style>\n        body {\n          font-family: Arial, sans-serif;\n          margin: 40px;\n        }\n        h2 {\n          margin-top: 40px;\n        }\n        table {\n          border-collapse: collapse;\n          width: 60%;\n        }\n        th, td {\n          border: 1px solid #ccc;\n          padding: 8px;\n        }\n        th {\n          background: #f4f4f4;\n        }\n      &lt;\/style>\n    &lt;\/head>\n    &lt;body>\n\n    &lt;h1>Ferreter\u00eda - Demo Microservicios&lt;\/h1>\n\n    &lt;h2>Productos&lt;\/h2>\n    &lt;table id=\"productos\">\n      &lt;thead>\n        &lt;tr>\n          &lt;th>ID&lt;\/th>\n          &lt;th>Nombre&lt;\/th>\n          &lt;th>Precio&lt;\/th>\n          &lt;th>Categor\u00eda&lt;\/th>\n        &lt;\/tr>\n      &lt;\/thead>\n      &lt;tbody>&lt;\/tbody>\n    &lt;\/table>\n\n    &lt;h2>Proveedores&lt;\/h2>\n    &lt;table id=\"proveedores\">\n      &lt;thead>\n        &lt;tr>\n          &lt;th>ID&lt;\/th>\n          &lt;th>Nombre&lt;\/th>\n          &lt;th>Pa\u00eds&lt;\/th>\n        &lt;\/tr>\n      &lt;\/thead>\n      &lt;tbody>&lt;\/tbody>\n    &lt;\/table>\n\n    &lt;script>\n    async function cargarProductos() {\n      const res = await fetch(\"https:\/\/productos.apps.okd.una.ac.cr\/productos.json\");\n      const data = await res.json();\n\n      const tbody = document.querySelector(\"#productos tbody\");\n      data.forEach(p => {\n        tbody.innerHTML += `\n          &lt;tr>\n            &lt;td>${p.id}&lt;\/td>\n            &lt;td>${p.nombre}&lt;\/td>\n            &lt;td>${p.precio}&lt;\/td>\n            &lt;td>${p.categoria}&lt;\/td>\n          &lt;\/tr>`;\n      });\n    }\n\n    async function cargarProveedores() {\n      const res = await fetch(\"https:\/\/proveedores.apps.okd.una.ac.cr\/proveedores.json\");\n      const data = await res.json();\n\n      const tbody = document.querySelector(\"#proveedores tbody\");\n      data.forEach(p => {\n        tbody.innerHTML += `\n          &lt;tr>\n            &lt;td>${p.id}&lt;\/td>\n            &lt;td>${p.nombre}&lt;\/td>\n            &lt;td>${p.pais}&lt;\/td>\n          &lt;\/tr>`;\n      });\n    }\n\n    cargarProductos();\n    cargarProveedores();\n    &lt;\/script>\n\n    &lt;\/body>\n    &lt;\/html>\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se crea<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"559\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_229-1024x559.png\" alt=\"\" class=\"wp-image-22412\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_229-1024x559.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_229-300x164.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_229-768x419.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_229.png 1512w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">11.Crear implementacion de frontend<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>yaml<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: frontend\n  namespace: tavo-prueba-microservicios\nspec:\n  replicas: 2\n  selector:\n    matchLabels:\n      app: frontend\n  template:\n    metadata:\n      labels:\n        app: frontend\n    spec:\n      containers:\n        - name: nginx\n          image: nginx:1.25\n          ports:\n            - containerPort: 80\n          volumeMounts:\n            - name: frontend-html\n              mountPath: \/usr\/share\/nginx\/html\/index.html\n              subPath: index.html\n      volumes:\n        - name: frontend-html\n          configMap:\n            name: frontend-html\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se crea<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"624\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_230-1024x624.png\" alt=\"\" class=\"wp-image-22413\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_230-1024x624.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_230-300x183.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_230-768x468.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_230.png 1223w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verificar si esta corriendo<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"385\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_231-1024x385.png\" alt=\"\" class=\"wp-image-22414\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_231-1024x385.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_231-300x113.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_231-768x289.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_231-1536x577.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_231.png 1769w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">12. Crear servicio frontend<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Yaml<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: Service\nmetadata:\n  name: frontend\n  namespace: tavo-prueba-microservicios\nspec:\n  selector:\n    app: frontend\n  ports:\n    - port: 80\n      targetPort: 80\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">13. Obtener los certificados UNA<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ejecutamos en la maquina local rban1.3<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/home\/tavo\/Escritorio\/\nmkdir certificados\ncd certificados\/\n\nscp -r root@10.0.2.30:\/etc\/letsencrypt\/live\/CERTIFICADOWILDCOMODO\/2025\/STAR_una_ac_cr.crt .\n\nscp -r root@10.0.2.30:\/etc\/letsencrypt\/live\/CERTIFICADOWILDCOMODO\/2025\/una.ac.cr.key .\n\nscp -r root@10.0.2.30:\/etc\/letsencrypt\/live\/CERTIFICADOWILDCOMODO\/2025\/My_CA_Bundle.ca-bundle .<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Creamos un full que contenga STAR y Bundle<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cat STAR_una_ac_cr.crt My_CA_Bundle.ca-bundle &gt; fullcert.crt<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">14. Crear ruta <\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Asi<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: route.openshift.io\/v1\nkind: Route\nmetadata:\n  name: frontend\n  namespace: tavo-prueba-microservicios\nspec:\n  host: frontend.una.ac.cr\n  to:\n    kind: Service\n    name: frontend\n  port:\n    targetPort: 80\n  tls:\n    termination: edge\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>se crea<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"515\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_232-1024x515.png\" alt=\"\" class=\"wp-image-22415\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_232-1024x515.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_232-300x151.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_232-768x386.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_232-1536x772.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_232.png 1667w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">15. Certificado<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Editamos la ruta<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"443\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_233-1024x443.png\" alt=\"\" class=\"wp-image-22417\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_233-1024x443.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_233-300x130.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_233-768x332.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_233-1536x665.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_233.png 1872w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>NOTA: Estamos en el puerto 80 (es lo que tiene configurado el servicio)<\/li>\n\n\n\n<li>Marcamos la opci\u00f3n de Ruta Segura<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"610\" height=\"111\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1790.png\" alt=\"\" class=\"wp-image-21310\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1790.png 610w, https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1790-300x55.png 300w\" sizes=\"(max-width: 610px) 100vw, 610px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Terminaci\u00f3n TLS: Edge<\/li>\n\n\n\n<li>Trafico inseguro: redirigir<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"283\" height=\"176\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1791.png\" alt=\"\" class=\"wp-image-21311\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Certificado: el full que acabamos de crear<\/li>\n\n\n\n<li>Lo abrimos o pegamos el contenido<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"171\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1792-1024x171.png\" alt=\"\" class=\"wp-image-21312\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1792-1024x171.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1792-300x50.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1792-768x128.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1792-1536x256.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1792.png 1573w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clave privada: una.ac.cr.key<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"166\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1793-1024x166.png\" alt=\"\" class=\"wp-image-21313\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1793-1024x166.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1793-300x49.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1793-768x125.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1793-1536x250.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2025\/10\/Seleccion_1793.png 1563w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Y ya sirve el certificado<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"621\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_235-1024x621.png\" alt=\"\" class=\"wp-image-22418\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_235-1024x621.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_235-300x182.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_235-768x466.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_235.png 1505w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sin embargo hay errores en la carga de los servicios<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"333\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_236-1024x333.png\" alt=\"\" class=\"wp-image-22419\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_236-1024x333.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_236-300x98.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_236-768x250.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_236-1536x499.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_236.png 1901w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>modificamos la ruta de frontend<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: route.openshift.io\/v1\nkind: Route\nmetadata:\n  name: frontend\n  namespace: tavo-prueba-microservicios\nspec:\n  host: frontend.una.ac.cr\n  path: \/\n  to:\n    kind: Service\n    name: frontend\n  port:\n    targetPort: 80\n  tls:\n    termination: edge\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>crear ruta que ve el servico de productos<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: route.openshift.io\/v1\nkind: Route\nmetadata:\n  name: productos-api\n  namespace: tavo-prueba-microservicios\nspec:\n  host: frontend.una.ac.cr\n  path: \/productos.json\n  to:\n    kind: Service\n    name: api-productos\n  port:\n    targetPort: 80\n  tls:\n    termination: edge\n\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>proveedores<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: route.openshift.io\/v1\nkind: Route\nmetadata:\n  name: proveedores-api\n  namespace: tavo-prueba-microservicios\nspec:\n  host: frontend.una.ac.cr\n  path: \/proveedores.json\n  to:\n    kind: Service\n    name: api-proveedores\n  port:\n    targetPort: 80\n  tls:\n    termination: edge\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>modificar ConfigMap frontend-html<\/li>\n\n\n\n<li>Modificamos las rutas<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>fetch(\"https:\/\/productos.apps.okd.una.ac.cr\/productos.json\");\nfetch(\"https:\/\/proveedores.apps.okd.una.ac.cr\/proveedores.json\");<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>fetch(\"\/productos.json\");\nfetch(\"\/proveedores.json\");<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reiniciamos la implementaci\u00f3n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"508\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_237-1024x508.png\" alt=\"\" class=\"wp-image-22420\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_237-1024x508.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_237-300x149.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_237-768x381.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_237-1536x762.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2026\/01\/Seleccion_237.png 1842w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>1. Crear Proyecto 2. Crear ConfigMaps: productos.json 3. Crear ConfigMaps: proveedores.json 4. Crear Implementaci\u00f3n\/deploy: api-productos 5. Crear Servicio: producto 6. Crear la ruta: productos 7. Crear Implementaci\u00f3n\/deploy: api-proveedores 8. Crear Servicio: provedores 9. Crear la ruta: productos 10. Crea ConfigMap index.html que consume los servicios 11.Crear implementacion de frontend 12. Crear servicio frontend 13. Obtener [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-22374","post","type-post","status-publish","format-standard","hentry","category-sin-categoria"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/22374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=22374"}],"version-history":[{"count":18,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/22374\/revisions"}],"predecessor-version":[{"id":22424,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/22374\/revisions\/22424"}],"wp:attachment":[{"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=22374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=22374"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=22374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}