{"id":16686,"date":"2024-12-20T09:45:37","date_gmt":"2024-12-20T17:45:37","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=16686"},"modified":"2025-06-13T17:14:21","modified_gmt":"2025-06-14T00:14:21","slug":"xdcr-couchbase-aws-eks","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/xdcr-couchbase-aws-eks\/","title":{"rendered":"Configuraci\u00f3n de Cross-VPC XDCR entre cl\u00fasteres de Amazon EKS"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">En los sistemas distribuidos modernos, la capacidad de replicar datos entre entornos separados es crucial para garantizar la alta disponibilidad, la recuperaci\u00f3n ante desastres y la optimizaci\u00f3n del rendimiento. La funci\u00f3n XDCR (Cross Data Center Replication) de Couchbase permite replicar datos sin problemas entre cl\u00fasteres, lo que permite compartir datos de forma robusta entre entornos geogr\u00e1fica o l\u00f3gicamente aislados.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Esta gu\u00eda le guiar\u00e1 a trav\u00e9s de la configuraci\u00f3n de XDCR entre dos cl\u00fasteres de Couchbase alojados en cl\u00fasteres separados de Amazon EKS (Elastic Kubernetes Service) dentro de diferentes VPC. Analizaremos cada paso, desde la configuraci\u00f3n de la infraestructura hasta la configuraci\u00f3n de DNS para la comunicaci\u00f3n entre cl\u00fasteres y el despliegue de Couchbase para la replicaci\u00f3n en tiempo real. Al final de este recorrido, tendr\u00e1s una configuraci\u00f3n lista para producci\u00f3n con las habilidades para replicar esto en tu entorno.<\/span><\/p>\n<h2>Requisitos previos<\/h2>\n<p><span style=\"font-weight: 400;\">Para seguir esta gu\u00eda, aseg\u00farese de tener:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>CLI DE AWS<\/b><span style=\"font-weight: 400;\"> instalado y configurado<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Una cuenta de AWS con permisos para crear VPC, cl\u00fasteres EKS y grupos de seguridad<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Familiaridad con Kubernetes y herramientas como kubectl y Helm<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Helm instalado para desplegar Couchbase<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Conocimientos b\u00e1sicos de conceptos de redes, incluidos bloques CIDR, tablas de enrutamiento y DNS.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr \/>\n<h3>Paso 1: Despliegue de cl\u00fasteres EKS en VPC independientes<\/h3>\n<h4>\u00bfQu\u00e9 estamos haciendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Crearemos dos clusters Kubernetes, Cluster1 y Cluster2, en VPCs separadas utilizando <code>eksctl<\/code>. Cada cl\u00faster funcionar\u00e1 de forma independiente y tendr\u00e1 su propio bloque CIDR para evitar conflictos de IP.<\/span><\/p>\n<h4>\u00bfPor qu\u00e9 es importante?<\/h4>\n<p><span style=\"font-weight: 400;\">Esta separaci\u00f3n garantiza:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Aislamiento para mejorar la seguridad y la gesti\u00f3n<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Escalabilidad y flexibilidad para gestionar las cargas de trabajo<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Reglas claras de enrutamiento entre clusters<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h4>Comandos para crear clusters<\/h4>\n<h5>Desplegar cl\u00faster1<\/h5>\n<pre class=\"nums:false lang:sh decode:true\">eksctl create cluster \\\r\n\u00a0\u00a0--name cluster1 \\\r\n\u00a0\u00a0--region us-east-1 \\\r\n\u00a0\u00a0--zones us-east-1a,us-east-1b,us-east-1c \\\r\n\u00a0\u00a0--node-type t2.medium \\\r\n\u00a0\u00a0--nodes 2 \\\r\n\u00a0\u00a0--nodes-min 1 \\\r\n\u00a0\u00a0--nodes-max 3 \\\r\n\u00a0\u00a0--version 1.27 \\\r\n\u00a0\u00a0--vpc-cidr 10.0.0.0\/16<\/pre>\n<h5>Desplegar cl\u00faster2<\/h5>\n<pre class=\"nums:false lang:sh decode:true\">eksctl create cluster \\\r\n\u00a0\u00a0--name cluster2 \\\r\n\u00a0\u00a0--region us-east-1 \\\r\n\u00a0\u00a0--zones us-east-1a,us-east-1b,us-east-1c \\\r\n\u00a0\u00a0--node-type t2.medium \\\r\n\u00a0\u00a0--nodes 2 \\\r\n\u00a0\u00a0--nodes-min 1 \\\r\n\u00a0\u00a0--nodes-max 3 \\\r\n\u00a0\u00a0--version 1.27 \\\r\n\u00a0\u00a0--vpc-cidr 10.1.0.0\/16<\/pre>\n<h4>Resultados esperados<\/h4>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cluster1 reside en VPC 10.0.0.0\/16<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cluster2 reside en VPC 10.1.0.0\/16<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16689\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1-1024x394.png\" alt=\"\" width=\"900\" height=\"346\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1-1024x394.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1-300x116.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1-768x296.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1-1536x592.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1-1320x508.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<hr \/>\n<h3>Paso 2: Emparejar las VPC para la comunicaci\u00f3n entre cl\u00fasteres<\/h3>\n<h4>\u00bfQu\u00e9 estamos haciendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Estamos creando una conexi\u00f3n VPC Peering entre las dos VPCs y configurando reglas de enrutamiento y seguridad para permitir la comunicaci\u00f3n inter-cl\u00faster.<\/span><\/p>\n<h4>Pasos<\/h4>\n<h5>2.1 Crear una conexi\u00f3n igualitaria<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Vaya a la consola de AWS &gt; <\/span><b>VPC &gt; Conexiones Peering<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Haga clic en <\/span><b>Crear conexi\u00f3n paritaria<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Seleccione <\/span><b>VPC solicitante<\/b><span style=\"font-weight: 400;\"> (Cluster1 VPC) y <\/span><b>Aceptador VPC<\/b><span style=\"font-weight: 400;\"> (Cluster2 VPC)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Nombre de la conexi\u00f3n <em>eks-peer<\/em><\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Haga clic en <\/span><b>Crear conexi\u00f3n paritaria<\/b><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>2.2 Aceptar la solicitud de interconexi\u00f3n<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Seleccione la conexi\u00f3n igualitaria<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Haga clic en <\/span><b>Acciones &gt; Aceptar solicitud<\/b><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>2.3 Actualizar tablas de rutas<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Para Cluster1 VPC, a\u00f1ada una ruta para 10.1.0.0\/16, apuntando a la conexi\u00f3n peering<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Para Cluster2 VPC, a\u00f1ada una ruta para 10.0.0.0\/16, apuntando a la conexi\u00f3n peering<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16690\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-1024x191.png\" alt=\"\" width=\"900\" height=\"168\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-1024x191.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-300x56.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-768x143.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-1536x286.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-1320x246.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<h5>2.4 Modificar los grupos de seguridad<\/h5>\n<h4>\u00bfPor qu\u00e9 es necesario?<\/h4>\n<p><span style=\"font-weight: 400;\">Los grupos de seguridad act\u00faan como cortafuegos, y debemos permitir el tr\u00e1fico entre los clusters expl\u00edcitamente.<\/span><\/p>\n<h4>C\u00f3mo modificar<\/h4>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Vaya a <\/span><b>EC2 &gt; Grupos de seguridad<\/b><span style=\"font-weight: 400;\"> en la consola de AWS<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Identificar los grupos de seguridad asociados a Cluster1 y Cluster2<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Para el grupo de seguridad de Cluster1:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><span style=\"font-weight: 400;\">Haga clic en <\/span><b>Editar reglas de entrada<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><span style=\"font-weight: 400;\">A\u00f1ade una regla:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"4\"><b>Tipo<\/b><span style=\"font-weight: 400;\">: Todo el tr\u00e1fico<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"4\"><b>Fuente<\/b><span style=\"font-weight: 400;\">: ID del grupo de seguridad de Cluster2<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Repetir para Cluster2, permitiendo el tr\u00e1fico del grupo de seguridad de Cluster1.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16691\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-1024x396.png\" alt=\"\" width=\"900\" height=\"348\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-1024x396.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-300x116.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-768x297.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-1536x595.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-1320x511.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16692\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5-1024x86.png\" alt=\"\" width=\"900\" height=\"76\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5-1024x86.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5-300x25.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5-768x65.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5-1536x129.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5-1320x111.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16693\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4-1024x276.png\" alt=\"\" width=\"900\" height=\"243\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4-1024x276.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4-300x81.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4-768x207.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4-1536x414.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4-1320x356.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<hr \/>\n<h3>Paso 3: Probar la conectividad desplegando NGINX en Cluster2<\/h3>\n<h4>\u00bfQu\u00e9 estamos haciendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Estamos desplegando un pod NGINX en Cluster2 para verificar que Cluster1 puede comunicarse con \u00e9l.<\/span><\/p>\n<h4>\u00bfPor qu\u00e9 es importante?<\/h4>\n<p><span style=\"font-weight: 400;\">Este paso asegura que la red entre clusters es funcional antes de desplegar Couchbase.<\/span><\/p>\n<h4>Pasos<\/h4>\n<h5>3.1 Crear un espacio de nombres en Cluster1 y Cluster2<\/h5>\n<pre class=\"nums:false lang:sh decode:true\">kubectl create ns dev #in cluster1\r\nkubectl create ns prod #in cluster2\r\n<\/pre>\n<h5>3.2 Despliegue de NGINX en Cluster1 y Cluster2<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Crea nginx.yaml:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:yaml decode:true\">apiVersion: apps\/v1\r\nkind: Deployment\r\nmetadata:\r\n\u00a0 name: nginx\r\nspec:\r\n\u00a0 replicas: 1\r\n\u00a0 selector:\r\n\u00a0 \u00a0 matchLabels:\r\n\u00a0 \u00a0 \u00a0 app: nginx\r\n\u00a0 template:\r\n\u00a0 \u00a0 metadata:\r\n\u00a0 \u00a0 \u00a0 labels:\r\n\u00a0 \u00a0 \u00a0 \u00a0 app: nginx\r\n\u00a0 \u00a0 spec:\r\n\u00a0 \u00a0 \u00a0 containers:\r\n\u00a0 \u00a0 \u00a0 - name: nginx\r\n\u00a0 \u00a0 \u00a0 \u00a0 image: nginx\r\n\u00a0 \u00a0 \u00a0 \u00a0 ports:\r\n\u00a0 \u00a0 \u00a0 \u00a0 - containerPort: 80\r\n---\r\napiVersion: v1\r\nkind: Service\r\nmetadata:\r\n\u00a0 name: nginx\r\nspec:\r\n\u00a0 clusterIP: None\r\n\u00a0 ports:\r\n\u00a0 - port: 80\r\n\u00a0 \u00a0 targetPort: 80\r\n\u00a0 selector:\r\n\u00a0 \u00a0 app: nginx<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>3.3 Aplicar el YAML<\/h5>\n<pre class=\"nums:false lang:sh decode:true\">kubectl apply -f nginx.yaml -n prod<\/pre>\n<h5>3.4 Verificar la conectividad desde Cluster1<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Ejecutar en el pod en Cluster1:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl exec -it -n dev &lt;pod-name&gt; -- \/bin\/bash<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>3.5 Prueba de conectividad con Cluster2<\/h5>\n<pre class=\"nums:false lang:sh decode:true\">curl nginx.prod<\/pre>\n<h4>Resultados esperados<\/h4>\n<p><span style=\"font-weight: 400;\">En <em>rizo<\/em> fallar\u00e1 sin el reenv\u00edo DNS, lo que pone de manifiesto la necesidad de una mayor configuraci\u00f3n DNS.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16694\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image7.png\" alt=\"\" width=\"596\" height=\"109\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image7.png 596w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image7-300x55.png 300w\" sizes=\"auto, (max-width: 596px) 100vw, 596px\" \/><\/p>\n<hr \/>\n<h3>Paso 4: Configuraci\u00f3n del reenv\u00edo DNS<\/h3>\n<h4>\u00bfQu\u00e9 estamos haciendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Configuraremos el reenv\u00edo DNS para que los servicios en Cluster2 puedan ser resueltos por Cluster1. Esto es cr\u00edtico para permitir que las aplicaciones en Cluster1 interact\u00faen con los servicios en Cluster2 usando sus nombres DNS.<\/span><\/p>\n<h4>\u00bfPor qu\u00e9 es importante?<\/h4>\n<p><span style=\"font-weight: 400;\">El descubrimiento de servicios Kubernetes se basa en DNS, y por defecto, las consultas DNS para los servicios de un cl\u00faster no se pueden resolver en otro cl\u00faster. CoreDNS en Cluster1 debe reenviar las consultas a la resoluci\u00f3n DNS de Cluster2.<\/span><\/p>\n<h4>Pasos<\/h4>\n<h5>4.1 Recuperar el punto final del servicio DNS de Cluster2<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Ejecute el siguiente comando en Cluster2 para obtener el endpoint del servicio DNS:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl get endpoints -n kube-system<\/pre>\n<\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Busque el <em>kube-dns<\/em> o <em>coredns<\/em> y anote su direcci\u00f3n IP. Por ejemplo:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">----------------------------------------\r\nNAME \u00a0 \u00a0 \u00a0 ENDPOINTS\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 AGE\r\nkube-dns \u00a0 10.1.20.116:53 \u00a0 \u00a0 3h\r\n----------------------------------------<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16695\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image6.png\" alt=\"\" width=\"859\" height=\"147\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image6.png 859w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image6-300x51.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image6-768x131.png 768w\" sizes=\"auto, (max-width: 859px) 100vw, 859px\" \/><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>4.2 Editar el CoreDNS ConfigMap en Cluster1<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Abra el CoreDNS ConfigMap para editarlo:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl edit cm coredns -n kube-system<\/pre>\n<p>&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>4.3 A<span style=\"font-weight: 400;\">dd el siguiente bloque en la secci\u00f3n Corefile<br \/>\n<\/span><\/h5>\n<pre class=\"nums:false lang:default decode:true\">prod.svc.cluster.local:53 {\r\n\u00a0\u00a0\u00a0\u00a0forward . 10.1.20.116\r\n}<\/pre>\n<p><span style=\"font-weight: 400;\">Sustituya 10.1.20.116 por la IP real del endpoint DNS de Cluster2.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Nota: S\u00f3lo necesitamos utilizar uno de los endpoints CoreDNS para este ConfigMap. <\/span><span style=\"font-weight: 400;\">La IP de los pods CoreDNS raramente cambia pero puede hacerlo si el Nodo se cae. <\/span><span style=\"font-weight: 400;\">El servicio kube-dns ClusterIP puede ser utilizado pero requerir\u00e1 que la IP y el Puerto est\u00e9n abiertos en los Nodos EKS.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image9.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-16696\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image9.png\" alt=\"\" width=\"600\" height=\"456\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image9.png 754w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image9-300x228.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<h5>4.4 Reiniciar CoreDNS en Cluster1<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Aplique los cambios reiniciando CoreDNS:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl rollout restart deployment coredns -n kube-system<\/pre>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16697\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image8.png\" alt=\"\" width=\"867\" height=\"98\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image8.png 867w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image8-300x34.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image8-768x87.png 768w\" sizes=\"auto, (max-width: 867px) 100vw, 867px\" \/><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>4.5 Verificar el reenv\u00edo DNS<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Ejecutar en cualquier pod en Cluster1:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl exec -it -n default &lt;pod-name&gt; -- \/bin\/bash<\/pre>\n<\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Probar la resoluci\u00f3n DNS para un servicio NGINX en Cluster2:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">curl nginx.prod.svc.cluster.local<\/pre>\n<\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\">Deber\u00eda ver una respuesta del servicio NGINX<br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16698\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12-1024x464.png\" alt=\"\" width=\"900\" height=\"408\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12-1024x464.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12-300x136.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12-768x348.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12-1320x598.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12.png 1348w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>Resultados esperados<\/h4>\n<p><span style=\"font-weight: 400;\">Las consultas DNS desde Cluster1 a Cluster2 deber\u00edan resolverse correctamente.<\/span><\/p>\n<hr \/>\n<h3>Paso 5: Despliegue de Couchbase<\/h3>\n<h4>\u00bfQu\u00e9 estamos haciendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Desplegaremos cl\u00fasteres de Couchbase en ambos entornos Kubernetes utilizando Helm. Cada cl\u00faster gestionar\u00e1 sus propios datos de forma independiente antes de conectarse a trav\u00e9s de XDCR.<\/span><\/p>\n<h4>\u00bfPor qu\u00e9 es importante?<\/h4>\n<p><span style=\"font-weight: 400;\">Los cl\u00fasteres Couchbase forman la base de la configuraci\u00f3n XDCR, proporcionando una plataforma de base de datos NoSQL robusta y escalable.<\/span><\/p>\n<h4>Pasos<\/h4>\n<h5>5.1 A\u00f1adir el repositorio de gr\u00e1ficos Couchbase Helm<\/h5>\n<pre class=\"nums:false lang:sh decode:true\">helm repo add couchbase https:\/\/couchbase-partners.github.io\/helm-charts\/\r\nhelm repo update\r\n<\/pre>\n<h5>5.2 Despliegue de Couchbase en Cluster1<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Cambia a Cluster1:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl config use-context &lt;cluster1-context&gt;\r\n<\/pre>\n<\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Despliegue Couchbase:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">helm install couchbase couchbase\/couchbase-operator --namespace dev<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16699\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10-1024x432.png\" alt=\"\" width=\"900\" height=\"380\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10-1024x432.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10-300x127.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10-768x324.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10-1536x648.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10-1320x557.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10.png 1780w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<h5>5.3 Despliegue de Couchbase en Cluster2<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Cambia a Cluster2:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl config use-context &lt;cluster2-context&gt;\r\n<\/pre>\n<\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Despliegue Couchbase:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">helm install couchbase couchbase-operator --namespace prod<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>5.4 Verificar la implantaci\u00f3n<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Comprueba los pods de Couchbase:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl get pods -n dev\u00a0 # For Cluster1\r\nkubectl get pods -n prod # For Cluster2<\/pre>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image11-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16701\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image11-1-1024x185.png\" alt=\"\" width=\"900\" height=\"163\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image11-1-1024x185.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image11-1-300x54.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image11-1-768x138.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image11-1.png 1104w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\">Aseg\u00farese de que todos los pods est\u00e1n funcionando.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><b>Nota: <\/b><span style=\"font-weight: 400;\">Si encuentra un error de despliegue, edite el CRD de CouchbaseCluster para utilizar una versi\u00f3n de imagen compatible:<\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl edit couchbasecluster &lt;cluster-name&gt; -n &lt;namespace&gt;\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">Cambia:<\/span><\/p>\n<pre class=\"nums:false lang:yaml decode:true\">image: couchbase\/server:7.2.0<\/pre>\n<p><span style=\"font-weight: 400;\">Para:<\/span><\/p>\n<pre class=\"nums:false lang:yaml decode:true\">image: couchbase\/server:7.2.4<\/pre>\n<h4>Resultados esperados<\/h4>\n<p><span style=\"font-weight: 400;\">Los clusters de Couchbase deben estar funcionando y accesibles a trav\u00e9s de sus respectivas interfaces de usuario.<\/span><\/p>\n<hr \/>\n<h3>Paso 6: Configuraci\u00f3n de XDCR<\/h3>\n<h4>\u00bfQu\u00e9 estamos haciendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Configuraremos XDCR para habilitar la replicaci\u00f3n de datos entre los dos clusters de Couchbase.<\/span><\/p>\n<h4>\u00bfPor qu\u00e9 es importante?<\/h4>\n<p><span style=\"font-weight: 400;\">XDCR garantiza la coherencia de los datos en todos los cl\u00fasteres, lo que permite escenarios de alta disponibilidad y recuperaci\u00f3n ante desastres.<\/span><\/p>\n<h4>Pasos<\/h4>\n<h5>6.1 Obtener el nombre del servicio de Cluster2<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">En cluster2 ejecute el siguiente comando para recuperar el nombre de servicio de uno de los pods para que podamos hacer port-forward a \u00e9l.<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl get services -n prod<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>6.2 Acceso a la interfaz de usuario de Couchbase para Cluster2<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Portar la interfaz de usuario de Couchbase:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:yaml decode:true\">kubectl port-forward -n prod cluster2-0000 8091:8091\r\n<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Abra un navegador y vaya a<br \/>\n<em>https:\/\/localhost:8091<\/em><br \/>\n<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Inicie sesi\u00f3n con las credenciales configuradas durante la implantaci\u00f3n.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>6.3 Ver documentos en Cluster2<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">En la interfaz de usuario de Couchbase, vaya a <\/span><b>Cubos<\/b><\/li>\n<li aria-level=\"2\">Tenga en cuenta que no existen Documentos en el <b>por defecto<\/b> cubo<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16703\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13-1024x96.png\" alt=\"\" width=\"900\" height=\"84\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13-1024x96.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13-300x28.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13-768x72.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13-1536x144.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13-1320x124.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h5>6.4 Acceso a la interfaz de usuario de Couchbase para Cluster1<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Portar la interfaz de usuario de Couchbase:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl port-forward -n dev cluster1-0000 8091:8091<\/pre>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16704\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image14.png\" alt=\"\" width=\"881\" height=\"87\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image14.png 881w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image14-300x30.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image14-768x76.png 768w\" sizes=\"auto, (max-width: 881px) 100vw, 881px\" \/><\/a><\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\">Abra un navegador y vaya a<br \/>\n<em>https:\/\/localhost:8091<\/em><\/span><\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\">Inicie sesi\u00f3n con las credenciales configuradas durante la implantaci\u00f3n<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>6.5 A\u00f1adir un Cluster Remoto<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">En la interfaz de usuario de Couchbase, vaya a <\/span><b>XDCR &gt; A\u00f1adir Cluster Remoto<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Configure el cl\u00faster remoto:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>Nombre del cl\u00faster<\/b><span style=\"font-weight: 400;\">: Grupo2<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>IP\/Nombre de host<\/b><span style=\"font-weight: 400;\">:<em>.prod.svc.cluster.local<\/em><\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>Nombre de usuario<\/b><span style=\"font-weight: 400;\">: Nombre de usuario de administrador para Cluster2<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>Contrase\u00f1a<\/b><span style=\"font-weight: 400;\">: Contrase\u00f1a de administrador para Cluster2<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Haga clic en <\/span><b>Guardar<\/b><span style=\"font-weight: 400;\"><br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image15.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16705\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image15.png\" alt=\"\" width=\"831\" height=\"723\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image15.png 831w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image15-300x261.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image15-768x668.png 768w\" sizes=\"auto, (max-width: 831px) 100vw, 831px\" \/><\/a><\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>6.6 Configurar la replicaci\u00f3n<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">En la interfaz de usuario de Couchbase para Cluster1, vaya a <\/span><b>XDCR &gt; A\u00f1adir replicaci\u00f3n<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Configure la replicaci\u00f3n:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>Replicar desde cubo<\/b><span style=\"font-weight: 400;\">: Cubo por defecto en Cluster1<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>Replicar a cubo<\/b><span style=\"font-weight: 400;\">: Cubo por defecto en Cluster2<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>Cluster remoto<\/b><span style=\"font-weight: 400;\">: Seleccione Cluster2<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Haga clic en <\/span><b>Guardar<\/b><span style=\"font-weight: 400;\"><br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16706\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16-1024x142.png\" alt=\"\" width=\"900\" height=\"125\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16-1024x142.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16-300x42.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16-768x106.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16-1536x213.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16-1320x183.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><br \/>\n<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>6.7 Replicaci\u00f3n de pruebas<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">A\u00f1ade documentos de muestra al bucket por defecto en Cluster1:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><span style=\"font-weight: 400;\">En la interfaz de usuario de Couchbase, vaya a <\/span><b>Cubos &gt; Documentos &gt; A\u00f1adir documento<\/b><\/li>\n<li aria-level=\"3\">Dar el <b>Documento<\/b> un \u00fanico <b>ID<\/b> y algunos datos en <b>JSON<\/b> formato<br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image17.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16707\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image17-768x1024.png\" alt=\"\" width=\"768\" height=\"1024\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image17-768x1024.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image17-225x300.png 225w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image17-300x400.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image17.png 1135w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/li>\n<li aria-level=\"3\"><span style=\"font-weight: 400;\">Comprueba que los documentos aparecen en el bucket por defecto de Cluster2:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><span style=\"font-weight: 400;\">Reenv\u00ede el puerto a la interfaz de Cluster2 e inicie sesi\u00f3n:<br \/>\n<\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl port-forward -n prod cluster2-0000 8091:8091\r\n<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li aria-level=\"3\"><span style=\"font-weight: 400;\">Navega hasta: <\/span><em>https:\/\/localhost:8091<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>Resultados esperados<\/h4>\n<p><span style=\"font-weight: 400;\">Los datos a\u00f1adidos al Cluster1 deben replicarse al Cluster2 en tiempo real.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16708\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18-1024x265.png\" alt=\"\" width=\"900\" height=\"233\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18-1024x265.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18-300x78.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18-768x199.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18-1536x398.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18-1320x342.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<hr \/>\n<h3>Paso 7: Limpieza<\/h3>\n<h4>\u00bfQu\u00e9 estamos haciendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Limpiaremos nuestro entorno AWS y borraremos todos los recursos que hemos desplegado.<\/span><\/p>\n<h4>\u00bfPor qu\u00e9 es importante?<\/h4>\n<p><span style=\"font-weight: 400;\">Esto evitar\u00e1 que incurra en gastos innecesarios.<\/span><\/p>\n<h4>Pasos<\/h4>\n<h5>7.1 Acceder a la consola de AWS<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Vaya a la consola de AWS &gt; <\/span><b>VPC &gt; Conexiones Peering<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Seleccione y elimine la conexi\u00f3n igualitaria<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Vaya a la consola de AWS &gt; <\/span><b>CloudFormation &gt; Pilas<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Selecciona y elimina las dos pilas de nodegroups<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Una vez que las dos pilas de nodegroups hayan terminado de borrarse seleccione y borre las pilas de cluster<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>Resultados esperados<\/h4>\n<p><span style=\"font-weight: 400;\">Todos los recursos creados para este tutorial se eliminan de la cuenta.<\/span><\/p>\n<hr \/>\n<h2>Conclusi\u00f3n<\/h2>\n<p><span style=\"font-weight: 400;\">A trav\u00e9s de esta gu\u00eda, hemos establecido con \u00e9xito XDCR entre cl\u00fasteres Couchbase que se ejecutan en cl\u00fasteres EKS separados a trav\u00e9s de AWS VPC. Esta configuraci\u00f3n destaca el poder de combinar las redes de AWS con Kubernetes para obtener soluciones s\u00f3lidas y escalables. Con la replicaci\u00f3n entre cl\u00fasteres implementada, sus aplicaciones ganan en resiliencia, latencia reducida para usuarios distribuidos y un mecanismo s\u00f3lido de recuperaci\u00f3n de desastres.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Al comprender y poner en pr\u00e1ctica los pasos que aqu\u00ed se describen, estar\u00e1 preparado para enfrentarse a los retos del mundo real que implican las configuraciones multicl\u00faster, ampliando su experiencia tanto en las redes en la nube como en la gesti\u00f3n de bases de datos distribuidas.<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>M\u00e1s informaci\u00f3n <a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/xdcr\/\">Replicaci\u00f3n entre centros de datos de Couchbase (XDCR)<\/a><\/li>\n<li>Leer el <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/clusters-and-availability\/xdcr-overview.html\">Documentaci\u00f3n XDCR<\/a><\/li>\n<li>Lee c\u00f3mo <a href=\"https:\/\/www.couchbase.com\/blog\/es\/content\/c\/developing-apps-xdcr-wp\/?x=bf-s6J\">XDCR es esencial para los datos distribuidos globalmente<\/a>Recuperaci\u00f3n en caso de cat\u00e1strofe y alta disponibilidad<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><br style=\"font-weight: 400;\" \/><br style=\"font-weight: 400;\" \/><\/p>","protected":false},"excerpt":{"rendered":"<p>In modern distributed systems, the ability to replicate data between separate environments is crucial for ensuring high availability, disaster recovery, and performance optimization. Couchbase&#8217;s XDCR (Cross Data Center Replication) feature allows seamless replication of data between clusters, enabling robust data [&hellip;]<\/p>","protected":false},"author":85538,"featured_media":16711,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,2225,1816,9415,9417,1813],"tags":[10124,2127,9583],"ppma_author":[10067,10068],"class_list":["post-16686","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-cloud","category-couchbase-server","category-xdcr","category-performance","category-security","tag-amazon-web-services-aws","tag-disaster-recovery","tag-vpc-peering"],"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>Setting Up Cross-VPC XDCR Between Amazon EKS Clusters - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Set up Couchbase XDCR for seamless data replication between clusters in separate AWS EKS environments. Enhance resilience, disaster recovery, and performance.\" \/>\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\/xdcr-couchbase-aws-eks\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters\" \/>\n<meta property=\"og:description\" content=\"Set up Couchbase XDCR for seamless data replication between clusters in separate AWS EKS environments. Enhance resilience, disaster recovery, and performance.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/xdcr-couchbase-aws-eks\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-12-20T17:45:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:14:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1256\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Rob Hadaway, Sr. Solutions Architect, Ben Mottershead, Software Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rob Hadaway, Sr. Solutions Architect\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/\"},\"author\":{\"name\":\"Rob Hadaway, Sr. Solutions Architect\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/403c24233f97f622abfb8da59c4a7143\"},\"headline\":\"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters\",\"datePublished\":\"2024-12-20T17:45:37+00:00\",\"dateModified\":\"2025-06-14T00:14:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/\"},\"wordCount\":1391,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png\",\"keywords\":[\"Amazon Web Services (AWS)\",\"Disaster Recovery\",\"VPC Peering\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Capella\",\"Couchbase Server\",\"Cross Data Center Replication (XDCR)\",\"High Performance\",\"Security\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/\",\"name\":\"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png\",\"datePublished\":\"2024-12-20T17:45:37+00:00\",\"dateModified\":\"2025-06-14T00:14:21+00:00\",\"description\":\"Set up Couchbase XDCR for seamless data replication between clusters in separate AWS EKS environments. Enhance resilience, disaster recovery, and performance.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png\",\"width\":2400,\"height\":1256},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters\"}]},{\"@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\/403c24233f97f622abfb8da59c4a7143\",\"name\":\"Rob Hadaway, Sr. Solutions Architect\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/270993c0b5ac0ea0c8ba036f4284290b\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/Screenshot-2024-12-20-at-10.48.05\u202fAM.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/Screenshot-2024-12-20-at-10.48.05\u202fAM.png\",\"caption\":\"Rob Hadaway, Sr. Solutions Architect\"},\"description\":\"Rob Hadaway is a Senior Solutions Architect at Couchbase, where he specializes in deploying and optimizing scalable database solutions in cloud and on-premises environments. With a strong technical foundation and a passion for problem-solving, Rob has led complex projects involving AWS EKS, Azure, and Kubernetes, ensuring seamless integration and deployment of Couchbase solutions for clients across various industries. Rob holds a Master of Science in Information Systems and an MBA from the University of Utah. His technical expertise spans a wide range of tools and technologies, including Python, SQL, Terraform, Docker, Kubernetes, and React.js. He is highly credentialed, holding multiple AWS certifications, as well as Kubernetes Administrator and Developer certifications\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/rob-hadaway\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters - The Couchbase Blog","description":"Set up Couchbase XDCR for seamless data replication between clusters in separate AWS EKS environments. Enhance resilience, disaster recovery, and performance.","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\/xdcr-couchbase-aws-eks\/","og_locale":"es_MX","og_type":"article","og_title":"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters","og_description":"Set up Couchbase XDCR for seamless data replication between clusters in separate AWS EKS environments. Enhance resilience, disaster recovery, and performance.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/xdcr-couchbase-aws-eks\/","og_site_name":"The Couchbase Blog","article_published_time":"2024-12-20T17:45:37+00:00","article_modified_time":"2025-06-14T00:14:21+00:00","og_image":[{"width":2400,"height":1256,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png","type":"image\/png"}],"author":"Rob Hadaway, Sr. Solutions Architect, Ben Mottershead, Software Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Rob Hadaway, Sr. Solutions Architect","Est. reading time":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/"},"author":{"name":"Rob Hadaway, Sr. Solutions Architect","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/403c24233f97f622abfb8da59c4a7143"},"headline":"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters","datePublished":"2024-12-20T17:45:37+00:00","dateModified":"2025-06-14T00:14:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/"},"wordCount":1391,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png","keywords":["Amazon Web Services (AWS)","Disaster Recovery","VPC Peering"],"articleSection":["Best Practices and Tutorials","Couchbase Capella","Couchbase Server","Cross Data Center Replication (XDCR)","High Performance","Security"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/","url":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/","name":"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png","datePublished":"2024-12-20T17:45:37+00:00","dateModified":"2025-06-14T00:14:21+00:00","description":"Set up Couchbase XDCR for seamless data replication between clusters in separate AWS EKS environments. Enhance resilience, disaster recovery, and performance.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png","width":2400,"height":1256},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters"}]},{"@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\/403c24233f97f622abfb8da59c4a7143","name":"Rob Hadaway, Arquitecto de soluciones s\u00e9nior","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/270993c0b5ac0ea0c8ba036f4284290b","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/Screenshot-2024-12-20-at-10.48.05\u202fAM.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/Screenshot-2024-12-20-at-10.48.05\u202fAM.png","caption":"Rob Hadaway, Sr. Solutions Architect"},"description":"Rob Hadaway is a Senior Solutions Architect at Couchbase, where he specializes in deploying and optimizing scalable database solutions in cloud and on-premises environments. With a strong technical foundation and a passion for problem-solving, Rob has led complex projects involving AWS EKS, Azure, and Kubernetes, ensuring seamless integration and deployment of Couchbase solutions for clients across various industries. Rob holds a Master of Science in Information Systems and an MBA from the University of Utah. His technical expertise spans a wide range of tools and technologies, including Python, SQL, Terraform, Docker, Kubernetes, and React.js. He is highly credentialed, holding multiple AWS certifications, as well as Kubernetes Administrator and Developer certifications","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/rob-hadaway\/"}]}},"authors":[{"term_id":10067,"user_id":85538,"is_guest":0,"slug":"rob-hadaway","display_name":"Rob Hadaway, Sr. Solutions Architect","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/Screenshot-2024-12-20-at-10.48.05\u202fAM.png","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/Screenshot-2024-12-20-at-10.48.05\u202fAM.png"},"first_name":"Rob","last_name":"Hadaway, Sr. Solutions Architect","user_url":"","author_category":"","description":"Rob Hadaway es arquitecto s\u00e9nior de soluciones en Couchbase, donde se especializa en implementar y optimizar soluciones de bases de datos escalables en entornos en la nube y locales. Con una s\u00f3lida base t\u00e9cnica y una pasi\u00f3n por la resoluci\u00f3n de problemas, Rob ha dirigido proyectos complejos con AWS EKS, Azure y Kubernetes, garantizando una integraci\u00f3n y un despliegue perfectos de las soluciones de Couchbase para clientes de diversos sectores.\r\n\r\nRob tiene una Maestr\u00eda en Ciencias en Sistemas de Informaci\u00f3n y un MBA de la Universidad de Utah. Su experiencia t\u00e9cnica abarca una amplia gama de herramientas y tecnolog\u00edas, incluyendo Python, SQL, Terraform, Docker, Kubernetes, y React.js. Cuenta con numerosas certificaciones de AWS, as\u00ed como de administrador y desarrollador de Kubernetes."},{"term_id":10068,"user_id":85555,"is_guest":0,"slug":"benmottershead","display_name":"Ben Mottershead, Software Engineer","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/1719955373757.jpeg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/1719955373757.jpeg"},"first_name":"Ben","last_name":"Mottershead, Software Engineer","user_url":"","author_category":"","description":"Ben es un ingeniero de software que trabaja en la oficina de Couchbase en Manchester. Forma parte del equipo de operadores aut\u00f3nomos desde agosto, lo que le introdujo en el ecosistema de datos en Kubernetes. Ben ha estado desarrollando aplicaciones para la nube desde que termin\u00f3 la universidad en 2021 y ha trabajado con varios lenguajes y tecnolog\u00edas, centr\u00e1ndose m\u00e1s recientemente en Go, K8s y Couchbase Server."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/16686","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\/85538"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=16686"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/16686\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/16711"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=16686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=16686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=16686"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=16686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}