{"id":20787,"date":"2025-09-22T15:06:35","date_gmt":"2025-09-22T21:06:35","guid":{"rendered":"https:\/\/sada.services\/?p=20787"},"modified":"2025-09-24T17:20:16","modified_gmt":"2025-09-24T23:20:16","slug":"okd-instalacion","status":"publish","type":"post","link":"https:\/\/sada.services\/?p=20787","title":{"rendered":"OKD: Instalaci\u00f3n"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Requsitos<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El sistema requiere <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Equipos<\/td><td>Descripci\u00f3n<\/td><td>Sistema Operativo<\/td><\/tr><tr><td>1 m\u00e1quina temporal bootstrap<\/td><td>Se utiliza para desplegar el cl\u00faster sobre los <em>control plane nodes<\/em>. Se elimina despu\u00e9s de la instalaci\u00f3n.<\/td><td><strong>Fedora CoreOS (FCOS)<\/strong>.<\/td><\/tr><tr><td>3 m\u00e1quinas control plane<\/td><td>Ejecutan Kubernetes y los servicios de OKD.<\/td><td><strong>Fedora CoreOS (FCOS)<\/strong>.<\/td><\/tr><tr><td>2 workers<\/td><td>Ejecutan las cargas de trabajo de los usuarios.<\/td><td>pueden usar <strong>FCOS<\/strong> o <strong>Fedora \u2265 8.6<\/strong>.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Para <strong>alta disponibilidad<\/strong>, se recomienda que todas estas m\u00e1quinas est\u00e9n en hosts f\u00edsicos separados.<\/li>\n\n\n\n<li>Requisitos de Hardware<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"820\" height=\"237\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1286.png\" alt=\"\" class=\"wp-image-20788\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1286.png 820w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1286-300x87.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1286-768x222.png 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Requisitos de red<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Todas las m\u00e1quinas Fedora CoreOS (FCOS) requieren que la red est\u00e9 configurada en <strong>initramfs<\/strong> durante el arranque para poder obtener sus archivos de configuraci\u00f3n de Ignition.<\/li>\n\n\n\n<li>Durante el arranque inicial, las m\u00e1quinas necesitan una configuraci\u00f3n de direcci\u00f3n IP que se establece ya sea mediante un servidor <strong>DHCP<\/strong> o de manera est\u00e1tica proporcionando las opciones de arranque necesarias. Una vez que se establece la conexi\u00f3n de red, las m\u00e1quinas descargan sus archivos de configuraci\u00f3n de Ignition desde un servidor HTTP o HTTPS. Los archivos de configuraci\u00f3n de Ignition se utilizan posteriormente para establecer el estado exacto de cada m\u00e1quina. El <strong>Machine Config Operator<\/strong> realiza m\u00e1s cambios en las m\u00e1quinas, como la aplicaci\u00f3n de nuevos certificados o claves, despu\u00e9s de la instalaci\u00f3n.<\/li>\n\n\n\n<li>En las m\u00e1quinas Fedora CoreOS (FCOS), el nombre de host se establece a trav\u00e9s de <strong>NetworkManager<\/strong>. Por defecto, las m\u00e1quinas obtienen su nombre de host mediante DHCP. Si el nombre de host no es proporcionado por DHCP, se establece de manera est\u00e1tica mediante argumentos del kernel u otro m\u00e9todo, se obtiene a trav\u00e9s de una b\u00fasqueda DNS inversa.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Puertos requeridos<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"789\" height=\"738\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1288.png\" alt=\"\" class=\"wp-image-20789\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1288.png 789w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1288-300x281.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1288-768x718.png 768w\" sizes=\"(max-width: 789px) 100vw, 789px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"776\" height=\"158\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1289.png\" alt=\"\" class=\"wp-image-20790\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1289.png 776w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1289-300x61.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1289-768x156.png 768w\" sizes=\"(max-width: 776px) 100vw, 776px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"789\" height=\"147\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1290.png\" alt=\"\" class=\"wp-image-20791\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1290.png 789w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1290-300x56.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1290-768x143.png 768w\" sizes=\"(max-width: 789px) 100vw, 789px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Requisitos de DNS<\/h2>\n\n\n\n<p>En los despliegues de OKD, se requiere la resoluci\u00f3n de nombres DNS para los siguientes componentes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>La <strong>API de Kubernetes<\/strong><\/li>\n\n\n\n<li>El <strong>comod\u00edn de aplicaciones de OKD<\/strong><\/li>\n\n\n\n<li>Las m\u00e1quinas <strong>bootstrap<\/strong>, del <strong>plano de control<\/strong> y de <strong>c\u00f3mputo<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Tambi\u00e9n se requiere resoluci\u00f3n DNS inversa para la API de Kubernetes, la m\u00e1quina bootstrap, las m\u00e1quinas del plano de control y las m\u00e1quinas de c\u00f3mputo.<\/p>\n\n\n\n<p>Se utilizan registros DNS <strong>A\/AAAA<\/strong> o <strong>CNAME<\/strong> para la resoluci\u00f3n de nombres y registros <strong>PTR<\/strong> para la resoluci\u00f3n inversa de nombres. Los registros inversos son importantes porque Fedora CoreOS (FCOS) utiliza estos registros para establecer los nombres de host de todos los nodos, a menos que los nombres de host se proporcionen mediante DHCP. Adem\u00e1s, los registros inversos se usan para generar las solicitudes de firma de certificados (<strong>CSR<\/strong>) que OKD necesita para funcionar.<\/p>\n\n\n\n<p>Se recomienda usar un servidor DHCP para proporcionar los nombres de host a cada nodo del cl\u00faster. Consulte la secci\u00f3n <strong>Recomendaciones de DHCP para infraestructura aprovisionada por el usuario<\/strong> para m\u00e1s informaci\u00f3n.<\/p>\n\n\n\n<p>Los siguientes registros DNS son requeridos para un cl\u00faster OKD aprovisionado por el usuario y deben estar configurados antes de la instalaci\u00f3n. En cada registro, <code>&lt;cluster_name&gt;<\/code> es el nombre del cl\u00faster y <code>&lt;base_domain&gt;<\/code> es el dominio base que se especifica en el archivo <strong>install-config.yaml<\/strong>. Un registro DNS completo tiene la forma: <code>&lt;component&gt;.&lt;cluster_name&gt;.&lt;base_domain&gt;<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"769\" height=\"703\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1291.png\" alt=\"\" class=\"wp-image-20794\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1291.png 769w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1291-300x274.png 300w\" sizes=\"(max-width: 769px) 100vw, 769px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"788\" height=\"301\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1292.png\" alt=\"\" class=\"wp-image-20795\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1292.png 788w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1292-300x115.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1292-768x293.png 768w\" sizes=\"(max-width: 788px) 100vw, 788px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ejemplo de registros<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$TTL 1W\n@\tIN\tSOA\tns1.example.com.\troot (\n\t\t\t2019070700\t; serial\n\t\t\t3H\t\t; refresh (3 hours)\n\t\t\t30M\t\t; retry (30 minutes)\n\t\t\t2W\t\t; expiry (2 weeks)\n\t\t\t1W )\t\t; minimum (1 week)\n\tIN\tNS\tns1.example.com.\n\tIN\tMX 10\tsmtp.example.com.\n;\n;\nns1.example.com.\t\tIN\tA\t192.168.1.5\nsmtp.example.com.\t\tIN\tA\t192.168.1.5\n;\nhelper.example.com.\t\tIN\tA\t192.168.1.5\nhelper.ocp4.example.com.\tIN\tA\t192.168.1.5\n;\napi.ocp4.example.com.\t\tIN\tA\t192.168.1.5 \napi-int.ocp4.example.com.\tIN\tA\t192.168.1.5 \n;\n*.apps.ocp4.example.com.\tIN\tA\t192.168.1.5 \n;\nbootstrap.ocp4.example.com.\tIN\tA\t192.168.1.96 \n;\ncontrol-plane0.ocp4.example.com.\tIN\tA\t192.168.1.97 \ncontrol-plane1.ocp4.example.com.\tIN\tA\t192.168.1.98 \ncontrol-plane2.ocp4.example.com.\tIN\tA\t192.168.1.99 \n;\ncompute0.ocp4.example.com.\tIN\tA\t192.168.1.11 \ncompute1.ocp4.example.com.\tIN\tA\t192.168.1.7 \n;\n;EOF<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"710\" height=\"650\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1293.png\" alt=\"\" class=\"wp-image-20797\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1293.png 710w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1293-300x275.png 300w\" sizes=\"(max-width: 710px) 100vw, 710px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Dominio<\/td><td>Descripci\u00f3n<\/td><\/tr><tr><td><strong>api.ocp4.example.com.<\/strong><\/td><td>Proporciona resoluci\u00f3n de nombres para la <strong>API de Kubernetes<\/strong>. El registro hace referencia a la direcci\u00f3n IP del balanceador de carga de la API.<\/td><\/tr><tr><td><strong>api-int.ocp4.example.com.<\/strong><\/td><td>Proporciona resoluci\u00f3n de nombres para la <strong>API de Kubernetes<\/strong>. El registro hace referencia a la direcci\u00f3n IP del balanceador de carga de la API y se utiliza para comunicaciones internas dentro del cl\u00faster.<\/td><\/tr><tr><td><strong>*.apps.ocp4.example.com.<\/strong><\/td><td>Proporciona resoluci\u00f3n de nombres para las <strong>rutas comod\u00edn<\/strong>. El registro hace referencia a la direcci\u00f3n IP del balanceador de carga de ingreso de aplicaciones. Este balanceador dirige el tr\u00e1fico a las m\u00e1quinas que ejecutan los pods del <strong>Ingress Controller<\/strong>, los cuales se ejecutan por defecto en las m\u00e1quinas de c\u00f3mputo.<br><br>En el ejemplo, se utiliza el mismo balanceador de carga para la API de Kubernetes y para el tr\u00e1fico de ingreso de aplicaciones. En escenarios de producci\u00f3n, se pueden desplegar los balanceadores de carga de la API y de ingreso de aplicaciones por separado, de modo que se pueda escalar la infraestructura de cada balanceador de manera independiente.<\/td><\/tr><tr><td><strong>bootstrap.ocp4.example.com.<\/strong><\/td><td><br>Proporciona resoluci\u00f3n de nombres para la <strong>m\u00e1quina bootstrap<\/strong>.<\/td><\/tr><tr><td><strong>control-plane0.ocp4.example.com.<\/strong><\/td><td>Proporciona resoluci\u00f3n de nombres para las <strong>m\u00e1quinas del plano de control<\/strong>.<\/td><\/tr><tr><td><strong>compute1.ocp4.example.com.<\/strong><\/td><td>Proporciona resoluci\u00f3n de nombres para las <strong>m\u00e1quinas de c\u00f3mputo<\/strong>.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Dominios UNA<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Dominio<\/td><td>IP<\/td><\/tr><tr><td><strong>api.okd.una.ac.cr.<\/strong><\/td><td>10.0.2.233<\/td><\/tr><tr><td><strong>api-int.<strong>okd.una.ac.cr.<\/strong><\/strong><\/td><td>10.0.2.233<\/td><\/tr><tr><td><strong>*.apps.<strong><strong>okd.una.ac.cr.<\/strong><\/strong><\/strong><\/td><td>10.0.2.233<\/td><\/tr><tr><td><strong>bootstrap.<strong><strong><strong>okd.una.ac.cr.<\/strong><\/strong><\/strong><\/strong><\/td><td>10.0.2.234<\/td><\/tr><tr><td><strong>control-plane1.<strong><strong><strong><strong>okd.una.ac.cr.<\/strong><\/strong><\/strong><\/strong><\/strong><\/td><td>10.0.2.235<\/td><\/tr><tr><td><strong>control-plane2.<strong><strong><strong><strong>okd.una.ac.cr.<\/strong><\/strong><\/strong><\/strong><\/strong><\/td><td>10.0.2.236<\/td><\/tr><tr><td><strong>control-plane3.<strong><strong><strong><strong>okd.una.ac.cr.<\/strong><\/strong><\/strong><\/strong><\/strong><\/td><td>10.0.2.237<\/td><\/tr><tr><td><strong>compute1.<strong><strong><strong><strong><strong>okd.una.ac.cr.<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/td><td>10.0.2.241<\/td><\/tr><tr><td><strong>compute2.<strong><strong><strong><strong><strong>okd.una.ac.cr.<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/td><td>10.0.2.242<\/td><\/tr><tr><td><strong>compute3.<strong><strong><strong><strong><strong>okd.una.ac.cr.<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/td><td>10.0.2.243<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Resolusiones inversas<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ejemplo<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$TTL 1W\n@\tIN\tSOA\tns1.example.com.\troot (\n\t\t\t2019070700\t; serial\n\t\t\t3H\t\t; refresh (3 hours)\n\t\t\t30M\t\t; retry (30 minutes)\n\t\t\t2W\t\t; expiry (2 weeks)\n\t\t\t1W )\t\t; minimum (1 week)\n\tIN\tNS\tns1.example.com.\n;\n5.1.168.192.in-addr.arpa.\tIN\tPTR\tapi.ocp4.example.com. \n5.1.168.192.in-addr.arpa.\tIN\tPTR\tapi-int.ocp4.example.com. \n;\n96.1.168.192.in-addr.arpa.\tIN\tPTR\tbootstrap.ocp4.example.com. \n;\n97.1.168.192.in-addr.arpa.\tIN\tPTR\tcontrol-plane0.ocp4.example.com. \n98.1.168.192.in-addr.arpa.\tIN\tPTR\tcontrol-plane1.ocp4.example.com. \n99.1.168.192.in-addr.arpa.\tIN\tPTR\tcontrol-plane2.ocp4.example.com. \n;\n11.1.168.192.in-addr.arpa.\tIN\tPTR\tcompute0.ocp4.example.com. \n7.1.168.192.in-addr.arpa.\tIN\tPTR\tcompute1.ocp4.example.com. \n;\n;EOF<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"736\" height=\"493\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1294.png\" alt=\"\" class=\"wp-image-20799\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1294.png 736w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1294-300x201.png 300w\" sizes=\"(max-width: 736px) 100vw, 736px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Dominio<\/td><td>Descripcion<\/td><\/tr><tr><td><strong>api.ocp4.example.com.<\/strong><\/td><td>Proporciona <strong>resoluci\u00f3n DNS inversa<\/strong> para la <strong>API de Kubernetes<\/strong>. El registro PTR hace referencia al nombre de registro del balanceador de carga de la API.<\/td><\/tr><tr><td><strong>api-int.ocp4.example.com.<\/strong><\/td><td>Proporciona <strong>resoluci\u00f3n DNS inversa<\/strong> para la <strong>API de Kubernetes<\/strong>. El registro PTR hace referencia al nombre de registro del balanceador de carga de la API y se utiliza para comunicaciones internas dentro del cl\u00faster.<\/td><\/tr><tr><td><strong>bootstrap.ocp4.example.com.<\/strong><\/td><td>Proporciona <strong>resoluci\u00f3n DNS inversa<\/strong> para la <strong>m\u00e1quina bootstrap<\/strong>.<\/td><\/tr><tr><td><strong>control-plane0.ocp4.example.com.<\/strong><\/td><td>Proporciona <strong>resoluci\u00f3n DNS inversa<\/strong> para las <strong>m\u00e1quinas del plano de control<\/strong>.<\/td><\/tr><tr><td><strong>compute0.ocp4.example.com.<\/strong><\/td><td>Proporciona <strong>resoluci\u00f3n DNS inversa<\/strong> para las <strong>m\u00e1quinas de c\u00f3mputo<\/strong>.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>NOTA: Para el Wildcard no es necesario la resolusi\u00f3n PTR<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Validar los DNS<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Los pasos de validaci\u00f3n detallados en esta secci\u00f3n deben completarse con \u00e9xito antes de instalar su cl\u00faster.<\/li>\n\n\n\n<li>Desde su nodo de instalaci\u00f3n, ejecute consultas DNS (<strong>lookups<\/strong>) contra los nombres de registro de la <strong>API de Kubernetes<\/strong>, las <strong>rutas comod\u00edn<\/strong> y los <strong>nodos del cl\u00faster<\/strong>. Valide que las direcciones IP contenidas en las respuestas correspondan a los componentes correctos.<\/li>\n\n\n\n<li>Realice una consulta contra el nombre de registro de la <strong>API de Kubernetes<\/strong>. Verifique que el resultado apunte a la direcci\u00f3n IP del balanceador de carga de la API:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>dig +noall +answer @&lt;nameserver_ip&gt; api.&lt;cluster_name&gt;.&lt;base_domain&gt; <\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ejecutar<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># apis\ndig +noall +answer @10.0.98.101 api.okd.una.ac.cr\ndig +noall +answer @10.0.98.101 api-int.okd.una.ac.cr\n\n# comodin\ndig +noall +answer @10.0.98.101 random.apps.okd.una.ac.cr\n\n#bootstrap\ndig +noall +answer @10.0.98.101 bootstrap.okd.una.ac.cr\n\ndig +noall +answer @10.0.98.101 cp1.okd.una.ac.cr\ndig +noall +answer @10.0.98.101 cp2.okd.una.ac.cr\ndig +noall +answer @10.0.98.101 cp3.okd.una.ac.cr\n\ndig +noall +answer @10.0.98.101 compute1.okd.una.ac.cr\ndig +noall +answer @10.0.98.101 compute2.okd.una.ac.cr\ndig +noall +answer @10.0.98.101 compute3.okd.una.ac.cr<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"966\" height=\"664\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1302.png\" alt=\"\" class=\"wp-image-20821\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1302.png 966w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1302-300x206.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1302-768x528.png 768w\" sizes=\"(max-width: 966px) 100vw, 966px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>NOTA: En los ejemplos, se usa el mismo balanceador para la API de Kubernetes y el tr\u00e1fico de ingreso de aplicaciones. En producci\u00f3n, puede desplegar los balanceadores por separado para escalar cada infraestructura de manera independiente.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Verificar consultas inversas<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Consultas Inversas<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#api\ndig +noall +answer @10.0.98.101 -x 10.0.2.233\n\n#bootstrap\ndig +noall +answer @10.0.98.101 -x 10.0.2.234\n\n#control-plane1\ndig +noall +answer @10.0.98.101 -x 10.0.2.235\n\n#control-plane2\ndig +noall +answer @10.0.98.101 -x 10.0.2.236\n\n#control-plane3\ndig +noall +answer @10.0.98.101 -x 10.0.2.237\n\n#compute1\ndig +noall +answer @10.0.98.101 -x 10.0.2.241\n\n#compute2\ndig +noall +answer @10.0.98.101 -x 10.0.2.242\n\n#compute3\ndig +noall +answer @10.0.98.101 -x 10.0.2.243<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Requisitos de balanceo de carga para infraestructura aprovisionada por el usuario<\/h3>\n\n\n\n<p>Antes de instalar OKD, debes aprovisionar la infraestructura de balanceo de carga para la <strong>API<\/strong> y el <strong>Ingress de aplicaciones<\/strong>. En escenarios de producci\u00f3n, puedes implementar los balanceadores de carga de API y de Ingress de aplicaciones por separado, de modo que puedas escalar la infraestructura de balanceo de carga de cada uno de forma independiente.<\/p>\n\n\n\n<p>Si deseas implementar los balanceadores de carga de API e Ingress de aplicaciones con una instancia de Fedora, debes adquirir la suscripci\u00f3n de Fedora por separado.<\/p>\n\n\n\n<p>La infraestructura de balanceo de carga debe cumplir con los siguientes requisitos:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Balanceador de carga de API:<\/h4>\n\n\n\n<p>Proporciona un punto de acceso com\u00fan para que los usuarios, tanto humanos como m\u00e1quinas, interact\u00faen y configuren la plataforma. Configura las siguientes condiciones:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Balanceo en Capa 4 solamente<\/strong>. Esto tambi\u00e9n se conoce como <em>Raw TCP<\/em> o <em>SSL Passthrough mode<\/em>.<\/li>\n\n\n\n<li><strong>Algoritmo de balanceo sin estado<\/strong>. Las opciones var\u00edan seg\u00fan la implementaci\u00f3n del balanceador.<\/li>\n\n\n\n<li><strong>No configurar persistencia de sesi\u00f3n<\/strong> para un balanceador de carga de API. Hacerlo para el servidor API de Kubernetes podr\u00eda generar problemas de rendimiento debido al exceso de tr\u00e1fico de aplicaciones en tu cl\u00faster OKD y en la API de Kubernetes que se ejecuta dentro del cl\u00faster.<\/li>\n<\/ul>\n\n\n\n<p>Debes configurar los siguientes puertos en la parte frontal y trasera de los balanceadores:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"742\" height=\"346\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1304.png\" alt=\"\" class=\"wp-image-20827\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1304.png 742w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1304-300x140.png 300w\" sizes=\"(max-width: 742px) 100vw, 742px\" \/><\/figure>\n\n\n\n<p>El balanceador debe estar configurado para tardar un m\u00e1ximo de <strong>30 segundos<\/strong> desde el momento en que el servidor API desactiva el endpoint <code>\/readyz<\/code> hasta la eliminaci\u00f3n de esa instancia del pool. Durante este intervalo, despu\u00e9s de que <code>\/readyz<\/code> devuelva error o se recupere, el endpoint debe haberse eliminado o agregado. Probar cada 5 o 10 segundos, con <strong>dos solicitudes exitosas para marcar saludable y tres fallidas para marcar no saludable<\/strong>, son valores probados y recomendados.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Balanceador de carga de Ingress de aplicaciones:<\/h4>\n\n\n\n<p>Proporciona un punto de entrada para el tr\u00e1fico de aplicaciones proveniente desde fuera del cl\u00faster. Se requiere una configuraci\u00f3n funcional del router Ingress para un cl\u00faster OKD.<\/p>\n\n\n\n<p>Configura las siguientes condiciones:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Balanceo en Capa 4 solamente<\/strong> (<em>Raw TCP<\/em> o <em>SSL Passthrough mode<\/em>).<\/li>\n\n\n\n<li>Se recomienda <strong>persistencia basada en conexi\u00f3n o sesi\u00f3n<\/strong>, seg\u00fan las opciones disponibles y los tipos de aplicaciones que se hospedar\u00e1n en la plataforma.<\/li>\n\n\n\n<li>Si el balanceador puede ver la direcci\u00f3n IP real del cliente, habilitar la <strong>persistencia basada en IP de origen<\/strong> puede mejorar el rendimiento de aplicaciones que usen cifrado TLS de extremo a extremo.<\/li>\n<\/ul>\n\n\n\n<p>Debes configurar los siguientes puertos en la parte frontal y trasera de los balanceadores:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"216\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1305.png\" alt=\"\" class=\"wp-image-20828\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1305.png 750w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1305-300x86.png 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Generaci\u00f3n de un par de claves para acceso SSH a los nodos del cl\u00faster<\/h2>\n\n\n\n<p>Durante una instalaci\u00f3n de <strong>OKD<\/strong>, puedes proporcionar una <strong>clave p\u00fablica SSH<\/strong> al programa de instalaci\u00f3n.<br>La clave se pasa a los nodos <strong>Fedora CoreOS (FCOS)<\/strong> a trav\u00e9s de sus archivos de configuraci\u00f3n <strong>Ignition<\/strong> y se utiliza para autenticar el acceso SSH a los nodos.<\/p>\n\n\n\n<p>La clave se agrega a la lista <code>~\/.ssh\/authorized_keys<\/code> del usuario <strong>core<\/strong> en cada nodo, lo que habilita la autenticaci\u00f3n sin contrase\u00f1a.<\/p>\n\n\n\n<p>Despu\u00e9s de que la clave se haya pasado a los nodos, puedes usar el <strong>par de claves<\/strong> para acceder a ellos v\u00eda SSH como el usuario <strong>core<\/strong>.<br>Para acceder a los nodos mediante SSH, la clave privada debe estar gestionada por SSH para tu usuario local.<\/p>\n\n\n\n<p>Si deseas acceder v\u00eda SSH a los nodos del cl\u00faster para realizar <strong>depuraci\u00f3n de la instalaci\u00f3n<\/strong> o <strong>recuperaci\u00f3n ante desastres<\/strong>, debes proporcionar la clave p\u00fablica SSH durante el proceso de instalaci\u00f3n.<br>El comando <code>.\/openshift-install gather<\/code> tambi\u00e9n requiere que la clave p\u00fablica SSH est\u00e9 configurada en los nodos del cl\u00faster.<\/p>\n\n\n\n<p class=\"has-vivid-red-color has-text-color has-link-color wp-elements-6bb795d11e4768388bba4d568fb8eaae\">\u26a0\ufe0f <strong>No omitas este procedimiento en entornos de producci\u00f3n<\/strong>, donde la recuperaci\u00f3n ante desastres y la depuraci\u00f3n son necesarias.<\/p>\n\n\n\n<p>En cl\u00fasteres que ejecutan <strong>Fedora CoreOS (FCOS)<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Las claves SSH especificadas en los archivos Ignition se escriben en el archivo <code>\/home\/core\/.ssh\/authorized_keys.d\/core<\/code>.<\/li>\n\n\n\n<li>Sin embargo, el <strong>Machine Config Operator<\/strong> administra las claves SSH en <code>\/home\/core\/.ssh\/authorized_keys<\/code> y configura <code>sshd<\/code> para que ignore el archivo <code>\/home\/core\/.ssh\/authorized_keys.d\/core<\/code>.<\/li>\n\n\n\n<li>Como resultado, los nodos reci\u00e9n aprovisionados no son accesibles por SSH hasta que el Machine Config Operator sincronice las configuraciones de m\u00e1quina con el archivo <code>authorized_keys<\/code>.<\/li>\n\n\n\n<li>Una vez que puedas acceder a los nodos mediante SSH, puedes eliminar el archivo <code>\/home\/core\/.ssh\/authorized_keys.d\/core<\/code>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Crear llaves<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ejecutar<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh-keygen -t ed25519 -N '' -f &lt;ruta&gt;\/&lt;nombre_archivo&gt;\n\nssh-keygen -t ed25519 -N '' -f ~\/.ssh\/id_ed25519_openshift<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si ya tienes un par de claves existente, aseg\u00farate de que tu <strong>clave p\u00fablica<\/strong> est\u00e9 en el directorio <code>~\/.ssh<\/code>.<\/li>\n\n\n\n<li>Ver tu clave p\u00fablica SSH:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cat &lt;ruta&gt;\/&lt;nombre_archivo&gt;.pub\n\ncat ~\/.ssh\/id_ed25519.pub\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Agregar la clave privada SSH al agente SSH de tu usuario local<\/strong> (si a\u00fan no est\u00e1 gestionada).<\/li>\n\n\n\n<li>Si el proceso <code>ssh-agent<\/code> no est\u00e1 en ejecuci\u00f3n, in\u00edcialo:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>eval \"$(ssh-agent -s)\"<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Agregar la clave privada al agente SSH:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh-add &lt;ruta&gt;\/&lt;nombre_archivo&gt;\n\nssh-add ~\/.ssh\/id_ed25519_openshift\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading has-palette-color-8-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-9f685a4bb8c292ef43ced3daefa7530d\">1. Instalaci\u00f3n de MV Provisioner<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se crea una MV con las siguientes caracteristicas\n<ul class=\"wp-block-list\">\n<li>SO: Ubuntu Server 24.04<\/li>\n\n\n\n<li>CPU: 2<\/li>\n\n\n\n<li>RAM: 4GB<\/li>\n\n\n\n<li>HD: 35 GB<\/li>\n\n\n\n<li>IP: 10.0.2.244<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Actualizar el servidor<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se actualiza el servidor<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt upgrade -y &amp;&amp; sudo apt dist-upgrade -y &amp;&amp; sudo apt autoremove -y &amp;&amp; sudo apt clean<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Obtener programas:<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">P\u00e1gina de descarga<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Descargar el instalador desde <\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/okd-project\/okd\/releases\">https:\/\/github.com\/okd-project\/okd\/releases<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">1.openshift-install-linux 4.20<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Buscamos la \u00faltima version estable para este momento 4.20.0-okd-scos.0<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/okd-project\/okd\/releases\/tag\/4.20.0-okd-scos.0\">https:\/\/github.com\/okd-project\/okd\/releases\/tag\/4.20.0-okd-scos.0<\/a><\/li>\n\n\n\n<li>Y descargamos el archivo <a href=\"https:\/\/github.com\/okd-project\/okd\/releases\/download\/4.20.0-okd-scos.0\/openshift-install-linux-4.20.0-okd-scos.0.tar.gz\">openshift-install-linux-4.20.0-okd-scos.0.tar.gz<\/a><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir programas\ncd programas\/\n\nwget https:\/\/github.com\/okd-project\/okd\/releases\/download\/4.20.0-okd-scos.0\/openshift-install-linux-4.20.0-okd-scos.0.tar.gz<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"218\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1298-1024x218.png\" alt=\"\" class=\"wp-image-20812\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1298-1024x218.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1298-300x64.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1298-768x164.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1298.png 1343w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. openshift-client-linux<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Descargamos el programa<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>wget https:\/\/github.com\/okd-project\/okd\/releases\/download\/4.20.0-okd-scos.0\/openshift-client-linux-4.20.0-okd-scos.0.tar.gz<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3. Instalaci\u00f3n<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Los descomprimimos y los colocamos en \/usr\/local\/bin<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo tar xfvz openshift-install-linux-4.20.0-okd-scos.0.tar.gz -C \/usr\/local\/bin\n\nsudo tar xfvz openshift-client-linux-4.20.0-okd-scos.0.tar.gz -C \/usr\/local\/bin<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"221\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1299-1024x221.png\" alt=\"\" class=\"wp-image-20814\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1299-1024x221.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1299-300x65.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1299-768x166.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1299.png 1139w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">4. Eliminamos el archivo README<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ejecutamos<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo rm \/usr\/local\/bin\/README.md<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"661\" height=\"33\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1301.png\" alt=\"\" class=\"wp-image-20816\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1301.png 661w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1301-300x15.png 300w\" sizes=\"(max-width: 661px) 100vw, 661px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">5. Verificamos<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ejecutamos<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>which oc\n\nwhich openshift-install<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"91\" src=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1300.png\" alt=\"\" class=\"wp-image-20815\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1300.png 629w, https:\/\/sada.services\/wp-content\/uploads\/2025\/09\/Seleccion_1300-300x43.png 300w\" sizes=\"(max-width: 629px) 100vw, 629px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Versiones<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Requsitos Equipos Descripci\u00f3n Sistema Operativo 1 m\u00e1quina temporal bootstrap Se utiliza para desplegar el cl\u00faster sobre los control plane nodes. Se elimina despu\u00e9s de la instalaci\u00f3n. Fedora CoreOS (FCOS). 3 m\u00e1quinas control plane Ejecutan Kubernetes y los servicios de OKD. Fedora CoreOS (FCOS). 2 workers Ejecutan las cargas de trabajo de los usuarios. pueden usar [&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-20787","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\/20787","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=20787"}],"version-history":[{"count":14,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/20787\/revisions"}],"predecessor-version":[{"id":20846,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/20787\/revisions\/20846"}],"wp:attachment":[{"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=20787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=20787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=20787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}