{"id":6804,"date":"2019-05-07T10:54:05","date_gmt":"2019-05-07T17:54:05","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=6804"},"modified":"2025-06-13T21:33:45","modified_gmt":"2025-06-14T04:33:45","slug":"autonomous-operator-1-2-0-networking","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-1-2-0-networking\/","title":{"rendered":"Salvando las distancias: Operador aut\u00f3nomo 1.2 Mejoras de la red"},"content":{"rendered":"<p>Las versiones de Operador Aut\u00f3nomo anteriores a la 1.2.0 ten\u00edan una capacidad limitada para interactuar con los clientes.  La plataforma de datos Couchbase solo pod\u00eda ser utilizada por SDKs ubicados en el mismo cl\u00faster Kubernetes.  La replicaci\u00f3n entre centros de datos (XDCR) solo pod\u00eda utilizarse dentro del mismo cl\u00faster de Kubernetes o a trav\u00e9s de un t\u00fanel seguro.  Una red privada virtual (VPN) es un ejemplo de este tipo de t\u00fanel. Adem\u00e1s, el acceso a la interfaz de usuario (UI) tendr\u00eda que realizarse con el reenv\u00edo de puertos de Kubernetes.<\/p>\n<p>La versi\u00f3n 1.2.0 del Operador Aut\u00f3nomo introduce nuevas funciones de red para hacer frente a estos l\u00edmites.  El objetivo final es ampliar nuestra audiencia con soporte para arquitecturas de red m\u00e1s diversas. Tu aplicaci\u00f3n puede ejecutarse como una funci\u00f3n sin servidor y por lo tanto necesita hablar a trav\u00e9s de internet con el servidor Couchbase.  Este tipo de caso de uso es exactamente lo que estamos soportando.<\/p>\n<h3>Arquitectura de red Kubernetes<\/h3>\n<p>Las opciones disponibles para las redes Kubernetes son diversas.  La interfaz es todo lo que proporciona Kubernetes, lo que significa que terceros proporcionan su propia implementaci\u00f3n.  El resultado es que cada soluci\u00f3n tiene sus puntos fuertes y d\u00e9biles. Las opciones de red que elijamos deben funcionar con todos los proveedores, por lo que describiremos los tipos de red comunes antes de examinar las soluciones.<\/p>\n<h3>Redes enrutadas<\/h3>\n<p>Las redes enrutadas son las m\u00e1s sencillas de describir en t\u00e9rminos de Kubernetes.  Los hosts pueden comunicarse entre s\u00ed porque se ejecutan dentro de la misma subred y pueden dirigirse directamente a su direcci\u00f3n de hardware de destino.  Esto se conoce como <a href=\"https:\/\/en.wikipedia.org\/wiki\/Data_link_layer\">capa 2<\/a> en red.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6805 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/05\/image1.png\" alt=\"Layer 2 networking\" width=\"701\" height=\"346\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image1.png 701w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image1-300x148.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image1-20x10.png 20w\" sizes=\"auto, (max-width: 701px) 100vw, 701px\" \/><\/p>\n<p>Los pods suelen ejecutarse en una subred separada de los hosts en los que se ejecutan.  Esta subred se subdivide a su vez entre cada host.<\/p>\n<p>Un mensaje de un pod en un host no tiene forma de saber c\u00f3mo encontrar su pod de destino en otro host porque no existe en la misma subred. Los mensajes de una subred pueden pasar de una subred a otra a trav\u00e9s de un enrutador.  Los mensajes de un host suelen enviarse a un enrutador de una subred cuando la direcci\u00f3n de destino no se encuentra en una subred conectada directamente.<\/p>\n<h3>Enrutamiento<\/h3>\n<p>Los routers gestionan los mensajes de dos maneras. En el caso de subredes conectadas directamente, los mensajes pueden enviarse al puerto de red correcto y la red de capa 2 se encarga del resto.  Para subredes no conectadas directamente, los mensajes pueden ser reenviados a otro router que s\u00ed tenga la subred conectada directamente. Esto se conoce como <a href=\"https:\/\/en.wikipedia.org\/wiki\/Network_layer\">capa 3<\/a> en red.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6806 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/05\/image3.png\" alt=\"Layer 3 networking\" width=\"845\" height=\"435\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image3.png 845w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image3-300x154.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image3-768x395.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image3-20x10.png 20w\" sizes=\"auto, (max-width: 845px) 100vw, 845px\" \/><\/p>\n<p>El router gestiona esta informaci\u00f3n de enrutamiento en una tabla de enrutamiento.  Una tabla de enrutamiento es simplemente una lista de asignaciones de una subred a una interfaz f\u00edsica o a otro enrutador en una red conectada directamente.<\/p>\n<p>Un mensaje dirigido a otro pod ser\u00eda captado por el host en el que se ejecuta el pod.  La direcci\u00f3n de destino del mensaje ser\u00eda desconocida, por lo que se reenviar\u00eda al enrutador. El enrutador conoce la direcci\u00f3n de destino en su tabla de enrutamiento, por lo que reenv\u00eda el mensaje al host correcto.  Por \u00faltimo, el mensaje se env\u00eda al pod de destino. Los mensajes procedentes de fuera del cl\u00faster Kubernetes pueden llegar a su pod de destino simplemente envi\u00e1ndolos al enrutador.<\/p>\n<p>Las redes enrutadas son muy sencillas.  Tambi\u00e9n pueden sufrir una ligera penalizaci\u00f3n de rendimiento al saltar al router y luego al host de destino.  Existen soluciones m\u00e1s inteligentes que utilizan <a href=\"https:\/\/en.wikipedia.org\/wiki\/Border_Gateway_Protocol\">iBGP<\/a> y <a href=\"https:\/\/en.wikipedia.org\/wiki\/Route_reflector\">reflectores de ruta<\/a> para eliminar este salto adicional.  El aislamiento de los pods entre s\u00ed debe hacerse con reglas de cortafuegos.<\/p>\n<h3>Redes superpuestas<\/h3>\n<p>Las redes superpuestas encapsulan los mensajes pod a pod en protocolos como <a href=\"https:\/\/en.wikipedia.org\/wiki\/Generic_Routing_Encapsulation\">GRE<\/a> o <a href=\"https:\/\/en.wikipedia.org\/wiki\/Virtual_Extensible_LAN\">VXLAN<\/a>.  Cada host anuncia su subred de pod.  Los hosts pueden suscribirse a estos anuncios y saber a qu\u00e9 host enviar directamente el mensaje para llegar al pod de destino.  Aunque es m\u00e1s r\u00e1pido que enviar a un enrutador, la sobrecarga de encapsulaci\u00f3n puede anular cualquier beneficio.<\/p>\n<p>La encapsulaci\u00f3n tambi\u00e9n permite asociar diferentes pods con diferentes <a href=\"https:\/\/en.wikipedia.org\/wiki\/Virtual_LAN\">redes virtuales<\/a>.  Esto proporciona un modelo de seguridad s\u00f3lido en el que los grupos de pods pueden segregarse f\u00edsicamente.  Sin embargo, esto significa que a\u00fan se necesitan enrutadores para cruzar entre redes superpuestas. Estos enrutadores necesitar\u00e1n sus propias reglas de cortafuegos.<\/p>\n<p>Direccionar un pod desde fuera del cluster es muy dif\u00edcil.  Con las redes enrutadas, podemos simplemente reenviar al enrutador y \u00e9ste se encargar\u00e1 del resto.  Con las superposiciones, no disponemos de un mecanismo tan sencillo para crear un t\u00fanel hacia la superposici\u00f3n.<\/p>\n<h3>Puertos de nodo<\/h3>\n<p>El mecanismo com\u00fan para comunicarse externamente con los pods en ambos tipos de red son los puertos de nodo de Kubernetes.  Para cada pod que crea el Operador Aut\u00f3nomo, tambi\u00e9n creamos un servicio de puerto de nodo para \u00e9l. Cada puerto que definamos para el servicio tendr\u00e1 un puerto aleatorio asignado al host subyacente.<\/p>\n<p>Los puertos de nodo deben ser aleatorios ya que dos pods pueden estar exponiendo el mismo n\u00famero de puerto.  Esto provocar\u00eda un conflicto si este puerto fuera utilizado como puerto de nodo por ambos pods. Podemos dirigirnos a un puerto en un pod espec\u00edfico dirigi\u00e9ndonos al host subyacente y al puerto del host. El host gestionar\u00e1 los mensajes <a href=\"https:\/\/en.wikipedia.org\/wiki\/Network_address_translation#DNAT\">redirecci\u00f3n<\/a> al destino correcto.<\/p>\n<p>Los puertos de nodo nos proporcionan un mecanismo gen\u00e9rico para dirigirnos a un pod independientemente de si estamos utilizando una red superpuesta.  Como nos estamos dirigiendo al nodo subyacente, la conexi\u00f3n a este desde fuera de Kubernetes es simplemente un caso de enrutamiento de paquetes en la red enrutada en la que residen los nodos Kubernetes.<\/p>\n<h3>Establecer XDCR<\/h3>\n<p>Los puertos de nodo forman la base para establecer una conexi\u00f3n XDCR entre dos cl\u00fasteres Couchbase en dos cl\u00fasteres Kubernetes diferentes.  Cuando se asignan puertos de nodo, el Operador Aut\u00f3nomo informa al servidor Couchbase. Los clientes que se conectan externamente se conectan al puerto de nodo y el servidor Couchbase responde con un mapa de direcciones IP de nodo y puertos de nodo por servicio.  El cliente XDCR utiliza estos mapas para acceder a los vBuckets individuales cuando transmite documentos.<\/p>\n<p>Lo \u00fanico que el Operador Aut\u00f3nomo no puede hacer es proporcionar conectividad de capa 3 entre las dos redes de host Kubernetes.  Crear un peering (VPN) entre las dos redes, a\u00f1adir rutas y reglas de firewall es todo lo que necesitan la mayor\u00eda de los proveedores de nube.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6807 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/05\/image2.png\" alt=\"IP based XDCR across Kubernetes clusters\" width=\"651\" height=\"433\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image2.png 651w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image2-300x200.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image2-400x267.png 400w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image2-450x300.png 450w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image2-20x13.png 20w\" sizes=\"auto, (max-width: 651px) 100vw, 651px\" \/><\/p>\n<h3>Nuevas mejoras para el operador aut\u00f3nomo<\/h3>\n<p>Tenemos una base s\u00f3lida, trabajando dentro de los confines del modelo de red Kubernetes.  Es segura, con una VPN, pero se pueden introducir mejoras.<\/p>\n<h3>Acceso de clientes externos<\/h3>\n<p>Utilizar un t\u00fanel VPN para acceder a una red host Kubernetes remota puede ser imposible o indeseable.  Esto es especialmente cierto en el caso de los servicios gestionados, en los que es posible que no tenga control sobre la red.<\/p>\n<p>Para solucionar esto necesitamos colocar los pods en Internet.  Las rutas de Openshift y las entradas gen\u00e9ricas solo funcionan para tr\u00e1fico HTTP y son dif\u00edciles de configurar.  En su lugar, optamos por crear servicios de balanceador de carga por pod de servidor Couchbase. Se puede admitir cualquier conexi\u00f3n TCP y, adem\u00e1s, como la direcci\u00f3n IP del equilibrador de carga es \u00fanica por pod, podemos utilizar los n\u00fameros de puerto predeterminados.  Todos los principales proveedores de cloud proporcionan servicios de balanceador de carga.<\/p>\n<p>Las conexiones XDCR basadas en puertos de nodo existentes siguen siendo compatibles y son las predeterminadas.<\/p>\n<h3>Acceso a interfaz de usuario externa<\/h3>\n<p>La interfaz de usuario, al igual que los pods individuales, ahora se puede dirigir p\u00fablicamente con un servicio de equilibrador de carga.  Esto hace que la gesti\u00f3n de tus despliegues de la plataforma de datos Couchbase sea mucho m\u00e1s sencilla.<\/p>\n<h3>Cifrado de extremo a extremo<\/h3>\n<p>Colocar cualquier cosa en la Internet p\u00fablica no est\u00e1 exento de riesgos.  Esto es especialmente cierto en el caso de una base de datos, por lo que exigimos el uso de TLS.  Ning\u00fan puerto de texto plano puede ser expuesto. Esto mantiene sus credenciales de usuario y los datos a salvo de los fisgones.<\/p>\n<p>Cuando se presenta un certificado de servidor a un cliente que se conecta, \u00e9ste verificar\u00e1 que la direcci\u00f3n a la que se ha conectado es v\u00e1lida para ese certificado.  Esto se hace con <a href=\"https:\/\/en.wikipedia.org\/wiki\/Subject_Alternative_Name\">nombres alternativos<\/a>.  S\u00f3lo admitimos nombres alternativos comod\u00edn basados en DNS, y no basados en IP.  Adem\u00e1s, no podemos utilizar el direccionamiento basado en IP de los servicios del equilibrador de carga, ya que la direcci\u00f3n no es estable a lo largo de la recuperaci\u00f3n.<\/p>\n<p>Un nombre v\u00e1lido para un cluster podr\u00eda ser <i>*.mi-cluster.ejemplo.com<\/i>.  Esto es un comod\u00edn, es v\u00e1lido para <i>servidor0.mi-cluster.ejemplo.com<\/i> y <i>servidor1.mi-cluster.ejemplo.com<\/i>.  El certificado ser\u00e1 v\u00e1lido para cualquier nodo que el Operador Aut\u00f3nomo cree en el ciclo de vida del cluster.<\/p>\n<p>Es necesario crear registros de recursos DNS que asignen los nombres DNS a las direcciones IP del equilibrador de carga para que sean visibles para el cliente.  El operador aut\u00f3nomo anota los nombres DNS necesarios en los servicios del equilibrador de carga. Un tercero los sincroniza con un proveedor de DNS en la nube. <a href=\"https:\/\/github.com\/kubernetes-incubator\/external-dns\">controlador<\/a>.<\/p>\n<h3>Ejemplo<\/h3>\n<p>El diagrama muestra c\u00f3mo se interrelacionan todas estas caracter\u00edsticas.<\/p>\n<ol>\n<li>Un cliente, ya sea un SDK o un XCDR, inicializa una conexi\u00f3n utilizando la direcci\u00f3n DNS <em>https:\/\/cb0.cb0.us-east-1.example.com:18091<\/em>.  Esto se resuelve con la direcci\u00f3n IP del equilibrador de carga en <em>185.64.232.18<\/em>.  Esta direcci\u00f3n DNS se crea a partir de la especificaci\u00f3n del servicio del balanceador de carga y su direcci\u00f3n IP p\u00fablica.<\/li>\n<li>A continuaci\u00f3n, el cliente abre una conexi\u00f3n TCP con el cl\u00faster de Couchbase.  Esta conexi\u00f3n atraviesa Internet hasta el router del cliente.<\/li>\n<li>A continuaci\u00f3n, el paquete se reenv\u00eda al equilibrador de carga en <em>185.64.232.18<\/em>.<\/li>\n<li>A continuaci\u00f3n, el equilibrador de carga SNAT env\u00eda el paquete al puerto del nodo correspondiente al puerto <em>18091<\/em> en el pod de destino.  A continuaci\u00f3n, el nodo SNAT env\u00eda el paquete al puerto <em>18091<\/em> en la propia c\u00e1psula.<\/li>\n<li>Una vez establecida la conexi\u00f3n TCP, el cliente inicia un protocolo TLS con el servidor.  El servidor devuelve su certificado al cliente.  El cliente valida que el certificado es v\u00e1lido para el destinatario.  La direcci\u00f3n <em>cb0.cb0.us-east-1.example.com<\/em> coincide con el nombre alternativo del tema comod\u00edn <em>*.cb0.us-east-1.ejemplo.com<\/em>.  El arranque del cliente contin\u00faa como de costumbre.<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6808 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/05\/image5.png\" alt=\"Public accessability of Couchbase clients\" width=\"1561\" height=\"1102\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5.png 1561w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5-300x212.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5-1024x723.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5-768x542.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5-1536x1084.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5-20x14.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5-1320x932.png 1320w\" sizes=\"auto, (max-width: 1561px) 100vw, 1561px\" \/><\/p>\n<p>Aunque no se incluye en el diagrama, vale la pena mencionar que el servidor Couchbase se refiere al pod de destino como <em>cb0.cb0.default.svc<\/em>su nombre DNS interno.  Los clientes no pueden resolver este nombre cuando reciben una asignaci\u00f3n de los miembros del cl\u00faster a las direcciones de los miembros.  El Operador rellena direcciones de miembros alternativas que son resolubles.<\/p>\n<p>Los clientes deben conocer las direcciones alternativas.  Los SDKs compatibles est\u00e1n documentados en la documentaci\u00f3n del Operador.  XDCR es compatible con las versiones 5.5.3+ y 6.0.1+ del servidor Couchbase.<\/p>\n<h3>Conclusi\u00f3n<\/h3>\n<p>La capacidad de direccionar p\u00fablicamente una instancia del servidor Couchbase es una herramienta poderosa.   Simplifica la configuraci\u00f3n de la red. Configurar un t\u00fanel VPN entre proveedores de nube puede ser dif\u00edcil o imposible, esto lo evita por completo.  Simplifica el proceso de acceso a la consola UI, tambi\u00e9n permite a los clientes, incluyendo XDCR, conectarse desde cualquier parte del mundo.<\/p>\n<p>Esto da lugar a nuevas y emocionantes posibilidades de integrar tus despliegues de Couchbase basados en Kubernetes con cualquier servicio externo.  Estos ejemplos podr\u00edan incluir plataformas de funci\u00f3n como servicio en las que no se tiene control sobre la arquitectura de red subyacente.<\/p>\n<ul>\n<li>Pru\u00e9balo: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/downloads\/\">https:\/\/www.couchbase.com\/downloads<\/a><\/li>\n<li>Foros de apoyo: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/c\/couchbase-server\/Kubernetes\/\">https:\/\/www.couchbase.com\/forums\/c\/couchbase-server\/Kubernetes<\/a><\/li>\n<li>Documentaci\u00f3n: <a href=\"https:\/\/docs.couchbase.com\/operator\/1.2\/whats-new.html\">https:\/\/docs.couchbase.com\/operator\/1.2\/whats-new.html<\/a><\/li>\n<\/ul>\n<h3>Seguir leyendo<\/h3>\n<p>Operador aut\u00f3nomo 1.2.0 Deep Dive: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/deep-dive-couchbase-autonomous-operator-1-2-0\/\">https:\/\/www.couchbase.com\/blog\/deep-dive-couchbase-autonomous-operator-1-2-0<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Autonomous Operator versions prior to 1.2.0 had limited ability to interact with clients. \u00a0The Couchbase data platform could only be used by SDKs located in the same Kubernetes cluster. \u00a0Cross datacenter replication (XDCR) could only be used within the same [&hellip;]<\/p>","protected":false},"author":25957,"featured_media":6809,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9284,2225,2322],"tags":[],"ppma_author":[9076],"class_list":["post-6804","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-autonomous-operator","category-cloud","category-kubernetes"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bridging Gaps: Autonomous Operator 1.2 Network Enhancements<\/title>\n<meta name=\"description\" content=\"How Kubernetes network improvements in Autonomous Operator 1.2.0 provide streamlined configuration of XDCR, and client access from the public internet.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-1-2-0-networking\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements\" \/>\n<meta property=\"og:description\" content=\"How Kubernetes network improvements in Autonomous Operator 1.2.0 provide streamlined configuration of XDCR, and client access from the public internet.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-1-2-0-networking\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-07T17:54:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:33:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1999\" \/>\n\t<meta property=\"og:image:height\" content=\"786\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Simon Murray, Senior Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Simon Murray, Senior Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/\"},\"author\":{\"name\":\"Simon Murray, Senior Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8b03ed823446340bba90154b6fcd7a23\"},\"headline\":\"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements\",\"datePublished\":\"2019-05-07T17:54:05+00:00\",\"dateModified\":\"2025-06-14T04:33:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/\"},\"wordCount\":1723,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg\",\"articleSection\":[\"Couchbase Autonomous Operator\",\"Couchbase Capella\",\"Kubernetes\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/\",\"name\":\"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg\",\"datePublished\":\"2019-05-07T17:54:05+00:00\",\"dateModified\":\"2025-06-14T04:33:45+00:00\",\"description\":\"How Kubernetes network improvements in Autonomous Operator 1.2.0 provide streamlined configuration of XDCR, and client access from the public internet.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg\",\"width\":1999,\"height\":786},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8b03ed823446340bba90154b6fcd7a23\",\"name\":\"Simon Murray, Senior Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/bf0dbf1d557d4349cd907431f40a61ac\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c5918b7fdf9c2714c0b72bd1d7366f65751da5f40cbcfdede50d123f4c40c893?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c5918b7fdf9c2714c0b72bd1d7366f65751da5f40cbcfdede50d123f4c40c893?s=96&d=mm&r=g\",\"caption\":\"Simon Murray, Senior Software Engineer, Couchbase\"},\"description\":\"Simon has almost 20 years experience on diverse topics such as systems programming, application performance and scale out storage. The cloud is now his current focus, specializing in enterprise network architecture, information security and platform orchestration across a wide range of technologies.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/simon-murraycouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Salvando las distancias: Operador aut\u00f3nomo 1.2 Mejoras de la red","description":"How Kubernetes network improvements in Autonomous Operator 1.2.0 provide streamlined configuration of XDCR, and client access from the public internet.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-1-2-0-networking\/","og_locale":"es_MX","og_type":"article","og_title":"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements","og_description":"How Kubernetes network improvements in Autonomous Operator 1.2.0 provide streamlined configuration of XDCR, and client access from the public internet.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-1-2-0-networking\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-05-07T17:54:05+00:00","article_modified_time":"2025-06-14T04:33:45+00:00","og_image":[{"width":1999,"height":786,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg","type":"image\/jpeg"}],"author":"Simon Murray, Senior Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Simon Murray, Senior Software Engineer, Couchbase","Est. reading time":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/"},"author":{"name":"Simon Murray, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8b03ed823446340bba90154b6fcd7a23"},"headline":"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements","datePublished":"2019-05-07T17:54:05+00:00","dateModified":"2025-06-14T04:33:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/"},"wordCount":1723,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg","articleSection":["Couchbase Autonomous Operator","Couchbase Capella","Kubernetes"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/","url":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/","name":"Salvando las distancias: Operador aut\u00f3nomo 1.2 Mejoras de la red","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg","datePublished":"2019-05-07T17:54:05+00:00","dateModified":"2025-06-14T04:33:45+00:00","description":"How Kubernetes network improvements in Autonomous Operator 1.2.0 provide streamlined configuration of XDCR, and client access from the public internet.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg","width":1999,"height":786},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8b03ed823446340bba90154b6fcd7a23","name":"Simon Murray, Ingeniero Superior de Software, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/bf0dbf1d557d4349cd907431f40a61ac","url":"https:\/\/secure.gravatar.com\/avatar\/c5918b7fdf9c2714c0b72bd1d7366f65751da5f40cbcfdede50d123f4c40c893?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c5918b7fdf9c2714c0b72bd1d7366f65751da5f40cbcfdede50d123f4c40c893?s=96&d=mm&r=g","caption":"Simon Murray, Senior Software Engineer, Couchbase"},"description":"Simon has almost 20 years experience on diverse topics such as systems programming, application performance and scale out storage. The cloud is now his current focus, specializing in enterprise network architecture, information security and platform orchestration across a wide range of technologies.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/simon-murraycouchbase-com\/"}]}},"authors":[{"term_id":9076,"user_id":25957,"is_guest":0,"slug":"simon-murraycouchbase-com","display_name":"Simon Murray, Senior Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/c5918b7fdf9c2714c0b72bd1d7366f65751da5f40cbcfdede50d123f4c40c893?s=96&d=mm&r=g","first_name":"Simon","last_name":"Murray","user_url":"","author_category":"","description":"Simon cuenta con casi 20 a\u00f1os de experiencia en diversos temas como la programaci\u00f3n de sistemas, el rendimiento de las aplicaciones y el almacenamiento a escala.  Ahora se centra en la nube, especializ\u00e1ndose en arquitectura de redes empresariales, seguridad de la informaci\u00f3n y orquestaci\u00f3n de plataformas en una amplia gama de tecnolog\u00edas."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/6804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/25957"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=6804"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/6804\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/6809"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=6804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=6804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=6804"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=6804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}