{"id":7314,"date":"2019-08-06T07:45:04","date_gmt":"2019-08-06T14:45:04","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7314"},"modified":"2025-06-13T23:06:17","modified_gmt":"2025-06-14T06:06:17","slug":"autonomous-operator-1-2-0-public-connectivity","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-1-2-0-public-connectivity\/","title":{"rendered":"Operador aut\u00f3nomo 1.2.0 Conectividad p\u00fablica"},"content":{"rendered":"<p>En mi <a href=\"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-1-2-0-networking\/\">art\u00edculo anterior<\/a> Discut\u00ed -desde un alto nivel- la nueva caracter\u00edstica de Conectividad P\u00fablica en el Operador Aut\u00f3nomo 1.2.0.  Esto fue intencionalmente una visi\u00f3n general abstracta con el fin de persuadir al usuario a aprender acerca de las alegr\u00edas de DDNS, TLS y redes de capa 3.<\/p>\n<blockquote><p>Dale un pez a un hombre y lo alimentar\u00e1s durante un d\u00eda. Ens\u00e9\u00f1ale a pescar y le dar\u00e1s de comer toda la vida.<\/p><\/blockquote>\n<p>Esperemos que todos hay\u00e1is invertido tiempo en aprender a pescar (o al menos os hay\u00e1is mojado los pies). (o al menos listos para mojarse los pies.) Este art\u00edculo ofrece un tutorial pr\u00e1ctico sobre la configuraci\u00f3n del Operator para poder exponer tus clusters de Couchbase de forma segura en la internet p\u00fablica.<\/p>\n<h2>\u00bfPor qu\u00e9 utilizar esta funci\u00f3n?<\/h2>\n<p>Las nuevas empresas tecnol\u00f3gicas se centran m\u00e1s en la nube que las empresas tradicionales. Algunos argumentar\u00edan que la empresa tradicional est\u00e1 atrincherada, protegiendo los datos tras cortafuegos en centros de datos privados, y podr\u00eda decirse que, desde el punto de vista de la seguridad, es lo correcto.<\/p>\n<p>El aumento de la exposici\u00f3n a la nube, aunque es un riesgo mayor, tambi\u00e9n se est\u00e1 convirtiendo en una preocupaci\u00f3n menor a medida que pasa el tiempo.  Lo m\u00e1s importante es que la nube abre innumerables puertas a la agilidad y la innovaci\u00f3n. Conectar las ofertas de servicios p\u00fablicos a trav\u00e9s de la Internet p\u00fablica es un beneficio enorme, que no puede lograrse f\u00e1cil y econ\u00f3micamente con servicios que viven en las instalaciones, ocultos detr\u00e1s de los l\u00edmites de NAT.<\/p>\n<p>Un ejemplo que personalmente me gusta mucho es el auge de las funciones como servicio (FaaS).  Las funciones son trabajos de corta duraci\u00f3n (normalmente basados en contenedores) que responden a est\u00edmulos y devuelven un resultado.  Se crean bajo demanda y se escalan horizontalmente de forma autom\u00e1tica e instant\u00e1nea para gestionar la carga de trabajo requerida.  Puede utilizar ofertas p\u00fablicas de servicios FaaS hoy mismo, sin perder tiempo instalando y configurando infraestructura virtual o f\u00edsica.  AWS Lambda es una encarnaci\u00f3n de este tipo con la que puede estar familiarizado.<\/p>\n<p>A menos que su funci\u00f3n sea pura (en el sentido de que s\u00f3lo procesa datos), necesitar\u00e1 entradas, normalmente en forma de base de datos.  Estas ofertas FaaS, dado que operan en la Internet p\u00fablica, tambi\u00e9n requerir\u00e1n una conexi\u00f3n a una base de datos p\u00fablica. Establecer t\u00faneles VPN privados entre estos servicios puede ser dif\u00edcil o imposible.<\/p>\n<p>Por estas razones -interconectividad, sencillez y agilidad- ofrecemos la opci\u00f3n de <em>conectividad p\u00fablica<\/em>.<\/p>\n<h2>Seguridad, seguridad, seguridad<\/h2>\n<p>Un servicio puesto a disposici\u00f3n del p\u00fablico en Internet se enfrentar\u00e1 al escrutinio de terceros malintencionados.  Internet est\u00e1 plagado de intentos de obtener y explotar informaci\u00f3n personal. Como prueba sencilla, conecte un sistema UNIX a Internet.  Sus registros SSH se llenar\u00e1n r\u00e1pidamente de intentos de acceso a la m\u00e1quina utilizando diccionarios de nombres de usuario y contrase\u00f1as comunes o robados. Los cortafuegos mostrar\u00e1n intentos de escanear puertos abiertos.  Esto es lo normal, y lo ha sido desde que tengo uso de raz\u00f3n.<\/p>\n<p>Las bases de datos, en particular, son tarros de miel para los delincuentes que intentan explotar los sistemas con el fin de acceder a listas de correo para ataques de phishing, o extraer datos de tarjetas de cr\u00e9dito para fraudes y robos de identidad. Hay que proteger estos servicios.<\/p>\n<p>La funci\u00f3n de conectividad p\u00fablica del operador obliga a utilizar un cifrado completo de extremo a extremo.  Esto impide que los fisgones vean informaci\u00f3n confidencial mientras est\u00e1n en redes p\u00fablicas. Los certificados digitales crean un v\u00ednculo de confianza entre clientes y servidores.  Un cliente verificar\u00e1 que un servidor es v\u00e1lido para el nombre de host al que intent\u00f3 conectarse y que est\u00e1 firmado por una autoridad de certificaci\u00f3n de confianza.<\/p>\n<p>El Operador s\u00f3lo permite el uso de cadenas de certificados de servidor, y no act\u00faa como autoridad de certificaci\u00f3n, firmando certificados de servidor para servidores individuales a medida que cambia la topolog\u00eda.  Actuar como CA permitir\u00eda crear y firmar cualquier certificado, por lo que optamos por el enfoque seguro. Como resultado, admitimos un certificado comod\u00edn para el cl\u00faster en su conjunto. Al utilizar certificados comod\u00edn tambi\u00e9n necesitamos utilizar DNS p\u00fablico para que el cliente pueda confirmar que el certificado del servidor es v\u00e1lido para el host con el que se est\u00e1 contactando.<\/p>\n<p>Estos antecedentes nos proporcionan conocimientos suficientes para empezar a desplegar nuestra base de datos con conectividad p\u00fablica.<\/p>\n<h2>Empecemos<\/h2>\n<h3>DNS<\/h3>\n<p>Como ya hemos comentado, necesitamos usar DNS p\u00fablicos para contactar con los nodos del cluster Couchbase cuando usamos conectividad p\u00fablica.  Estos se pueden comprar relativamente barato en l\u00ednea de los registradores, tales como <a href=\"https:\/\/www.gandi.net\">Gandi<\/a>, <a href=\"https:\/\/godaddy.com\/\">GoDaddy<\/a>, <a href=\"https:\/\/www.namecheap.com\">Namecheap<\/a> etc.<\/p>\n<p>Tambi\u00e9n necesitamos poder utilizar DNS din\u00e1micos.  A medida que se a\u00f1aden y eliminan nodos de nuestro cl\u00faster Couchbase, necesitamos que se a\u00f1adan y eliminen las entradas correspondientes del DNS.  Tambi\u00e9n necesitan ser actualizadas si las direcciones IP p\u00fablicas de estos nodos cambian. Esto es debido al alto rendimiento, la fragmentaci\u00f3n del lado del cliente utilizada por los clientes Couchbase y XDCR.  Utilizaremos el <a href=\"https:\/\/github.com\/kubernetes-incubator\/external-dns#the-latest-release-v05\">Kubernetes external-dns<\/a> para realizar actualizaciones DDNS.  El enlace enumera los proveedores de DDNS compatibles.  Una vez que haya comprado un dominio DNS, tendr\u00e1 que delegar sus servidores de nombres al proveedor DDNS que haya elegido.  Mi elecci\u00f3n personal para este ejemplo es <a href=\"https:\/\/www.cloudflare.com\/\">Cloudflare<\/a>. El paso final de preparaci\u00f3n es la creaci\u00f3n de una clave API u otras credenciales para que el controlador external-dns se autentique con el proveedor DDNS y controle los registros DNS requeridos por el cluster Couchbase.<\/p>\n<h3>TLS<\/h3>\n<p>Para la mayor\u00eda de la gente esta es la parte m\u00e1s m\u00edstica del proceso.  Las p\u00e1ginas web HTTPS simplemente funcionan de forma transparente, por lo que hay poca necesidad de preocuparse de esto en el d\u00eda a d\u00eda por parte del usuario medio.  No voy a entrar en detalles (ya que eso es para otro post), pero lo que tenemos que discutir son las principales cosas que necesitan estar vinculados a su configuraci\u00f3n de DNS elegido.<\/p>\n<p>Utilizo mi dominio DNS personal, <strong>spjmurray.es<\/strong>para esta demostraci\u00f3n.  Instalar\u00e9 mi cl\u00faster Couchbase en su propio espacio de nombres llamado <strong>6c3c0075-b44a-11e9-9518-4a8d7629c69a<\/strong>y el cl\u00faster se llamar\u00e1 <strong>couchbase<\/strong>. Es importante conocer estos par\u00e1metros porque nos permiten direccionar de forma \u00fanica un cl\u00faster Couchbase dentro de nuestro cl\u00faster Kubernetes.  El cl\u00faster Couchbase se configurar\u00e1 para que su dominio sea <strong>couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk<\/strong>. El operador requerir\u00e1 la creaci\u00f3n de registros A dentro de este dominio para cada nodo, as\u00ed como la Consola Web de Couchbase.<\/p>\n<p>Conociendo nuestro dominio, ahora podemos determinar el nombre alternativo del sujeto del certificado comod\u00edn DNS <strong>*.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk<\/strong>.<\/p>\n<p>La herramienta EasyRSA de OpenVPN es un m\u00e9todo sencillo para generar certificados.  Primero, clona el repositorio e inicial\u00edzalo.<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">git clone https:\/\/github.com\/OpenVPN\/easy-rsa\r\n<\/pre>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">cd easy-rsa\/easyrsa3\r\n<\/pre>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">.\/easyrsa init-pki\r\n<\/pre>\n<p>Generar el certificado de CA y el par de claves.  Si recuerdas, la clave privada de la CA se utiliza para firmar digitalmente un certificado de servidor. Un cliente puede entonces verificar que el certificado del servidor es aut\u00e9ntico con la clave p\u00fablica de la CA.  Este comando le pedir\u00e1 un nombre de CA y una contrase\u00f1a. Una vez completado, el certificado de la CA se puede encontrar en <strong>pki\/ca.crt<\/strong>.<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">.\/easy-rsa build-ca\r\n<\/pre>\n<p>El certificado del servidor y el par de claves se crean a continuaci\u00f3n.  Cuando se especifica TLS en la configuraci\u00f3n del cluster de Couchbase, el Operador utilizar\u00e1 TLS para comunicarse con el cluster.  Esto evita que cualquier contrase\u00f1a o datos sensibles sean transmitidos en texto plano. Para soportar los nombres DNS privados de Kubernetes necesitamos otro nombre alternativo de sujeto comod\u00edn DNS.  El <strong>nopass<\/strong> para que la clave privada no est\u00e9 encriptada y pueda ser le\u00edda por el servidor Couchbase. El siguiente comando solicitar\u00e1 una contrase\u00f1a; esta es la contrase\u00f1a de la clave privada de la CA utilizada para firmar digitalmente el certificado.<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">.\/easy-rsa --subject-alt-name=DNS:*.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.svc,DNS:*.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk build-server-full server nopass\r\n<\/pre>\n<p>Puede comprobar que el certificado es el esperado examin\u00e1ndolo en OpenSSL:<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">openssl x509 -in cert -noout -text\r\nCertificado:\r\n    Datos:\r\n        Versi\u00f3n: 3 (0x2)\r\n        N\u00famero de serie:\r\n            b8:a2:ab:74:2c:8a:88:bf:67:3f:a8:d3:9b:fd:09:19\r\n        Algoritmo de firma: sha256WithRSAEncryption\r\n        Emisor: CN = Couchbase CA\r\n        Validez\r\n            No antes de: Aug 1 10:52:15 2019 GMT\r\n            No despu\u00e9s de : Jul 29 10:52:15 2029 GMT\r\n        Asunto: CN = Couchbase Server\r\n        Informaci\u00f3n de la clave p\u00fablica del sujeto:\r\n            Algoritmo de clave p\u00fablica: rsaEncryption\r\n                Clave P\u00fablica RSA: (2048 bit)\r\n                M\u00f3dulo:\r\n                    00:b8:85:b5:41:16:67:1f:79:32:4c:ed:e1:44:cc:\r\n                    55:65:db:a1:d1:99:6e:d1:d7:90:a6:5e:eb:4c:96:\r\n                    de:a4:70:dd:74:6c:76:13:75:01:5e:36:a2:5f:f0:\r\n                    8b:cd:e8:8b:bd:68:2a:f2:5c:e8:3c:78:6d:71:92:\r\n                    db:2c:58:7c:e7:40:a5:73:cc:cd:f4:b7:c8:69:16:\r\n                    d3:c5:15:18:c0:56:d9:b3:f6:86:c6:22:8b:05:22:\r\n                    77:c7:5c:ce:2a:3d:b8:e8:96:ea:c8:17:a8:3a:27:\r\n                    7b:94:66:a1:80:89:a2:8b:25:5b:ed:72:ac:d5:29:\r\n                    37:a1:e5:dd:9f:16:ac:a4:04:14:d8:89:cc:d0:08:\r\n                    f9:f1:58:1f:a7:fa:ee:2d:1a:e5:bd:03:ba:e7:9a:\r\n                    79:f7:10:d7:0f:9b:bc:f9:cc:c9:03:97:58:78:9f:\r\n                    68:78:b7:20:cf:5e:a8:67:7b:33:41:91:4a:8c:7c:\r\n                    44:1a:25:86:ca:15:eb:9a:25:5e:80:23:65:9b:7a:\r\n                    40:e4:55:c1:9c:93:c8:d6:72:e7:d8:d7:ac:dd:f9:\r\n                    92:a8:89:c1:bc:ff:1a:7d:a5:e9:ab:6b:b8:3e:c4:\r\n                    5f:b6:e6:30:45:5c:b4:5a:ce:fa:d9:12:28:ad:e6:\r\n                    39:7b:39:4b:2e:a2:2a:16:f8:64:36:75:7d:59:78:\r\n                    41:cf\r\n                Exponente: 65537 (0x10001)\r\n        Extensiones X509v3:\r\n            X509v3 Uso de la clave: cr\u00edtico\r\n                Firma digital, cifrado de claves\r\n            Uso de la clave extendida X509v3:\r\n                Autenticaci\u00f3n de servidor web TLS\r\n            Restricciones b\u00e1sicas de X509v3: critical\r\n                CA:FALSE\r\n            Identificador de clave de sujeto X509v3:\r\n                B8:7D:84:E9:AE:DF:38:90:B4:B5:CC:82:EA:B5:38:D2:35:12:4C:3F\r\n            Identificador de clave de autoridad X509v3:\r\n                keyid:78:49:35:9B:B4:03:26:81:B4:5A:68:8C:94:18:CE:2A:5A:12:FE:EE\r\n\r\n            Nombre alternativo del asunto X509v3:\r\n                DNS:*.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.svc, DNS:*.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk\r\n    Algoritmo de firma: sha256WithRSAEncryption\r\n         79:75:3c:81:ca:78:50:64:4b:4a:4c:67:9a:22:12:28:e6:76:\r\n         a0:00:18:87:0f:09:bc:18:28:fb:5c:06:52:51:91:fe:2b:5f:\r\n         9c:a2:0f:96:67:ec:0d:44:fd:e4:7d:cc:90:f5:5f:8a:9f:e1:\r\n         56:c1:aa:67:fb:fe:8d:6d:fa:fb:04:36:c4:cf:b6:24:ce:4d:\r\n         e8:87:d9:f0:40:b3:9b:7d:d1:a7:77:6a:1b:ea:11:67:46:14:\r\n         84:0b:37:0a:c1:35:b8:53:bd:98:58:3f:98:b5:20:d7:9c:0f:\r\n         99:eb:48:71:03:88:1b:8d:ef:b3:08:76:27:53:87:09:cd:4a:\r\n         5c:26:fc:bd:ad:82:e4:38:0b:6c:e1:8c:e8:61:8e:38:f5:c0:\r\n         aa:7c:69:b1:2d:f3:5e:85:8c:0f:42:fc:19:b0:aa:17:81:44:\r\n         54:6e:8f:5d:d7:1f:f6:27:5c:fc:a3:78:de:45:e2:d3:3e:30:\r\n         14:53:65:fd:01:07:e8:af:b9:a7:fd:04:fb:ec:79:2c:1b:b9:\r\n         d7:f2:d2:90:2c:6f:ac:ca:09:29:07:73:a3:88:c2:bc:d7:a6:\r\n         09:49:31:a6:5b:96:40:12:5e:6f:82:bd:32:7f:ba:dc:6c:ad:\r\n         d2:ed:a8:70:42:99:4e:6c:8a:4f:43:c3:a3:a0:70:42:ea:23:\r\n         e3:a5:61:60\r\n<\/pre>\n<p>EasyRSA crea claves privadas en el moderno formato PKCS#7, sin embargo Couchbase Server s\u00f3lo soporta PKCS#1.  Para remediar esto necesitamos convertir los formatos.<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">openssl rsa -in pki\/private\/server.key -out server.key.der -outform DER<\/pre>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">openssl rsa -in servidor.clave.der -inform DER -out servidor.clave -outform PEM\r\n<\/pre>\n<p>Ahora que TLS est\u00e1 configurado, recoge tu certificado CA y el par certificado\/clave privada del servidor, ya que ser\u00e1n necesarios cuando configures tu cluster Couchbase en un paso posterior.<\/p>\n<h3>Configuraci\u00f3n DDNS<\/h3>\n<p>Ahora podemos empezar a desplegar algunos recursos reales de Kubernetes.  En primer lugar, vamos a crear nuestro espacio de nombres para el controlador externo-dns para ejecutar y una cuenta de servicio para ejecutar como.<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">kubectl create namespace 6c3c0075-b44a-11e9-9518-4a8d7629c69a<\/pre>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">kubectl -n 6c3c0075-b44a-11e9-9518-4a8d7629c69a create serviceaccount external-dns<\/pre>\n<p>Se requiere un rol para otorgar permiso al controlador external-dns para interrogar los recursos de Kubernetes en el espacio de nombres en el que se est\u00e1 ejecutando.  La funci\u00f3n est\u00e1 vinculada a la cuenta de servicio que el controlador externo-dns se ejecutar\u00e1 como. Utilizar\u00e9 un rol de cl\u00faster en este ejemplo para que pueda ser compartido entre todas las instancias del controlador de DNS externo.  Sin embargo, se vincular\u00e1 dentro del espacio de nombres, ya que el controlador no necesita acceder a todos los espacios de nombres. Usuarios de OpenShift: Necesitar\u00e1 privilegios de administrador para la creaci\u00f3n y vinculaci\u00f3n de roles, ya que requieren escalado de privilegios y, por motivos de seguridad, no pueden ser realizados por usuarios normales.  El rol tiene el siguiente aspecto:<\/p>\n<pre class=\"lang:yaml decode:true\">apiVersion: rbac.authorization.k8s.io\/v1\r\ntipo: ClusterRole\r\nmetadatos:\r\n  name: external-dns\r\nreglas:\r\n- apiGroups:\r\n  - \"\"\r\n  recursos:\r\n  - servicios\r\n  - pods\r\n  - nodos\r\n  verbos:\r\n  - obtener\r\n  - vigilar\r\n  - listar\r\n<\/pre>\n<p>Y se instala con lo siguiente:<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">kubectl create -f external-dns-cluster-role.yaml<\/pre>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">kubectl -n 6c3c0075-b44a-11e9-9518-4a8d7629c69a create rolebinding --clusterrole external-dns --serviceaccount 6c3c0075-b44a-11e9-9518-4a8d7629c69a:external-dns external-dns\r\n<\/pre>\n<p>El \u00faltimo paso es instalar el controlador external-dns.  Lo configuraremos para que busque servicios dentro del espacio de nombres.  Si un servicio tiene una anotaci\u00f3n <em>external-dns.alpha.kubernetes.io\/hostname<\/em> entonces el controlador external-dns crear\u00e1 registros DNS A en nuestro proveedor DDNS mapeando a la direcci\u00f3n IP del servicio.<\/p>\n<p>Es posible que varias instancias de external-dns est\u00e9n sincronizando registros DNS para el mismo dominio.  Si ve un registro que no corresponde a un servicio que est\u00e1 gestionando, lo borrar\u00e1. Para evitar que dos o m\u00e1s controladores est\u00e9n continuamente a\u00f1adiendo registros propios y borrando registros ajenos, a\u00f1adimos un GUID para que el controlador s\u00f3lo responda a los registros de su propiedad.  Para tu curiosidad, la propiedad se gestiona a trav\u00e9s de registros DNS TXT. El YAML de despliegue tiene el siguiente aspecto. Debe sustituir su propia clave API de Cloudflare y direcci\u00f3n de correo electr\u00f3nico en los par\u00e1metros de entorno.<\/p>\n<pre class=\"lang:yaml decode:true\">apiVersion: extensions\/v1beta1\r\ntipo: Despliegue\r\nmetadatos:\r\n  name: external-dns\r\nspec:\r\n  selector:\r\n    matchLabels:\r\n      app: external-dns\r\n  plantilla:\r\n    metadata:\r\n      labels:\r\n        app: external-dns\r\n    spec:\r\n      serviceAccountName: external-dns\r\n      contenedores:\r\n       - nombre: external-dns\r\n         imagen: registry.opensource.zalan.do\/teapot\/external-dns:latest\r\n         argumentos:\r\n         --source=service\r\n         --domain-filter=spjmurray.co.uk\r\n         --provider=cloudflare\r\n         - --txt-owner-id=6c3c0075-b44a-11e9-9518-4a8d7629c69a\r\n         env:\r\n         - nombre: CF_API_KEY\r\n           value: REDACTED\r\n         - nombre: CF_API_EMAIL\r\n           valor: REDACTED REDACTED\r\n<\/pre>\n<p>Esto se puede crear con lo siguiente:<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">kubectl -n 6c3c0075-b44a-11e9-9518-4a8d7629c69a create -f external-dns.yaml\r\n<\/pre>\n<p>Comprueba que el despliegue se est\u00e1 ejecutando y estamos listos para instalar nuestro cl\u00faster Couchbase.<\/p>\n<h3>Instalar el operador<\/h3>\n<p>Este tema se trata ampliamente en el <a href=\"https:\/\/docs.couchbase.com\/operator\/current\/overview.html\">documentaci\u00f3n oficial<\/a>.  En primer lugar, deber\u00e1 instalar las definiciones de recursos personalizadas.  A continuaci\u00f3n, instale el controlador de admisi\u00f3n din\u00e1mico en un espacio de nombres de su elecci\u00f3n y con\u00e9ctelo a la API de Kubernetes.<\/p>\n<p>El controlador de admisi\u00f3n es un componente obligatorio del despliegue de Operator 1.2.0.  Aplica valores por defecto al cluster, y lo m\u00e1s importante, realiza validaciones fuera del alcance de la validaci\u00f3n nativa del esquema JSON.  La validaci\u00f3n m\u00e1s importante que realiza para esta configuraci\u00f3n es asegurar que tus DNS y TLS est\u00e1n configurados correctamente en la definici\u00f3n de tu cluster Couchbase.<\/p>\n<p>El Operador se instala en el mismo espacio de nombres que el controlador external-dns mediante un proceso muy similar al del controlador external-dns.<\/p>\n<h3>Cl\u00faster Couchbase p\u00fablico<\/h3>\n<p>El \u00faltimo paso es en realidad el m\u00e1s sencillo.  Aqu\u00ed est\u00e1 la definici\u00f3n YAML:<\/p>\n<pre class=\"lang:yaml decode:true\">apiVersion: couchbase.com\/v1\r\ntipo: CouchbaseCluster\r\nmetadatos:\r\n  nombre: couchbase\r\nspec:\r\n  authSecret: 6c3c0075-b44a-11e9-9518-4a8d7629c69a\r\n  baseImage: couchbase\/servidor\r\n  versi\u00f3n: enterprise-6.0.1\r\n  exposeAdminConsole: true\r\n  adminConsoleServiceType: LoadBalancer\r\n  adminConsoleServices:\r\n  - datos\r\n  exposedFeatureServiceType: LoadBalancer\r\n  caracter\u00edsticas expuestas:\r\n  - xdcr\r\n  - cliente\r\n  dns\r\n    domain: 6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk\r\n  tls:\r\n    static:\r\n      operatorSecret: couchbase-ca\r\n      miembro:\r\n        serverSecret: couchbase-cert\r\n  servidores:\r\n  - nombre: default\r\n    servicios:\r\n    - datos\r\n    - \u00edndice\r\n    - consulta\r\n    tama\u00f1o: 3\r\n<\/pre>\n<p>La consola de administraci\u00f3n y las funcionalidades expuestas (por pod services) se exponen con nuevos par\u00e1metros que permiten especificar el tipo de servicio.  En esta ocasi\u00f3n estoy ejecutando en GKE. Cuando un <strong>LoadBalancer<\/strong> se le asocia una direcci\u00f3n IP p\u00fablica.<\/p>\n<p>La nueva configuraci\u00f3n DNS, cuando se especifique, anotar\u00e1 la consola de administraci\u00f3n y los servicios per-pod con las etiquetas entendidas por el controlador DNS externo.  Para la configuraci\u00f3n de la consola de administraci\u00f3n es <strong>console.${metadata.name}.${spec.dns.domain}<\/strong> por ejemplo.<\/p>\n<p>Por \u00faltimo, como estamos utilizando conectividad p\u00fablica y DNS, el controlador de admisi\u00f3n din\u00e1mico nos obligar\u00e1 a utilizar TLS.  Los par\u00e1metros TLS son <a href=\"https:\/\/docs.couchbase.com\/operator\/1.2\/tls.html\">poblada de secretos<\/a> que contiene los certificados TLS que creamos anteriormente para este cl\u00faster.<\/p>\n<p>Crea el cluster y observa los logs de estado u Operator para ver si se ha completado.  Eventualmente deber\u00edas poder conectarte a la consola con la url <strong>https:\/\/console.6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk:18091\/<\/strong> a medida que se asignan las IPs del balanceador de carga y se a\u00f1aden los registros DNS.  Puedes usar esta misma direcci\u00f3n para establecer clusters remotos XDCR y arrancar SDKs de cliente Couchbase.  Enhorabuena, \u00a1has habilitado la conectividad p\u00fablica!<\/p>\n<h2>Soluci\u00f3n de problemas<\/h2>\n<p>Explicar simplemente c\u00f3mo configurar la conectividad p\u00fablica es la mitad del trabajo.  Tienes que ser capaz de determinar d\u00f3nde est\u00e1 el problema antes de plantear casos de asistencia.  Dado que siempre es culpa de la red (bueno, casi siempre), aqu\u00ed tienes algunos consejos que te ayudar\u00e1n.<\/p>\n<p>El DNS no es instant\u00e1neo, los registros tardan en aparecer y las modificaciones tardan en propagarse a medida que expiran los TTL.  Para comprobar que el DNS es el esperado, primero busca los nombres DNS esperados. Busca los nombres de servicio:<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">kubectl -n 6c3c0075-b44a-11e9-9518-4a8d7629c69a get svc\r\nNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE\r\ncouchbase ClusterIP Ninguno 8091\/TCP,18091\/TCP 26h\r\ncouchbase-0000-exposed-ports LoadBalancer 10.40.8.108 34.66.243.123 18091:32281\/TCP,18092:32677\/TCP,11207:31661\/TCP,18093:32233\/TCP 26h\r\ncouchbase-0001-exposed-ports LoadBalancer 10.40.6.37 35.232.231.230 18091:32171\/TCP,18092:31995\/TCP,11207:30711\/TCP,18093:31243\/TCP 26h\r\ncouchbase-0002-exposed-ports LoadBalancer 10.40.4.46 35.238.213.211 18091:32117\/TCP,18092:30313\/TCP,11207:32609\/TCP,18093:32433\/TCP 26h\r\ncouchbase-srv ClusterIP Ninguno 11210\/TCP,11207\/TCP 26h\r\ncouchbase-ui LoadBalancer 10.40.13.78 35.238.226.107 18091:32508\/TCP 26h\r\n<\/pre>\n<p>Busque el nombre DNS calculado:<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">kubectl -n 6c3c0075-b44a-11e9-9518-4a8d7629c69a get svc couchbase-0000-exposed-ports -o yaml | grep external-dns.alpha.kubernetes.io\/hostname\r\n    external-dns.alpha.kubernetes.io\/hostname: couchbase-0000.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk\r\n<\/pre>\n<p>\u00bfExiste el registro DNS A?  \u00bfCorresponde la direcci\u00f3n IP a la direcci\u00f3n IP p\u00fablica del servicio?<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">dig +short couchbase-0000.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk\r\n34.66.243.123<\/pre>\n<p>A continuaci\u00f3n hay que asegurarse de que los puertos solicitados est\u00e1n a la escucha.  Podemos comprobar que el puerto Admin habilitado para TLS est\u00e1 escuchando y podemos establecer una sesi\u00f3n TCP en ese puerto:<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">nc -vz couchbase-0000.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk 18091\r\nConexi\u00f3n a couchbase-0000.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk 18091 puerto [tcp\/*] \u00a1con \u00e9xito!\r\n<\/pre>\n<p>Lo \u00faltimo que hay que hacer es establecer si TLS funciona como se espera utilizando el certificado CA:<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">openssl s_client -host couchbase-0000.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk -port 18091 -CAfile ca.crt\r\nCONECTADO(00000005)\r\ndepth=1 CN = Couchbase CA\r\nverify return:1\r\ndepth=0 CN = Servidor Couchbase\r\nverificar retorno:1\r\n---\r\nCadena de certificados\r\n 0 s:CN = Servidor Couchbase\r\n   i:CN = CA de Couchbase\r\n 1 s:CN = CA de Couchbase\r\n   i:CN = CA de Couchbase\r\n---\r\nCertificado del servidor\r\n-----EMPEZAR CERTIFICADO-----\r\nMIIDuDCCAqCgAwIBAgIRALiiq3Qsioi\/Zz+o05v9CRkwDQYJKoZIhvcNAQELBQAw\r\nFzEVMBMGA1UEAxMMQ291Y2hiYXNlIENBMB4XDTE5MDgwMTEwNTIxNVoXDTI5MDcy\r\nOTEwNTIxNVowGzEZMBcGA1UEAxMQ291Y2hiYXNlIFNlcnZlcjCCASIwDQYJKoZI\r\nhvcNAQEBBQADggEPADCCAQoCggEBALiFtUEWZx95Mkzt4UTMVWXbodGZbtHXkKZe\r\n60yW3qRw3XRsdhN1AV42ol\/wi83oi71oKvJc6Dx4bXGS2yxYfOdApXPMzfS3yGkW\r\n08UVGMBW2bP2hsYiiwUid8dczio9uOiW6sgXqDone5RmoYCJooslW+1yrNUpN6Hl\r\n3Z8WrKQEFNiJzNAI+fFYH6f67i0a5b0DuueaefcQ1w+bvPnMyQOXWHifaHi3IM9e\r\nqGd7M0GRSox8RBolhsoV65olXoAjZZt6QORVwZyTyNZy59jXrN35kqiJwbz\/Gn2l\r\n6atruD7EX7bmMEVctFrO+tkSKK3mOXs5Sy6iKhb4ZDZ1fVl4Qc8CAwEAAOB+jCB\r\n9zAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH\/\r\nBAIwADAdBgNVHQ4EFgQUuH2E6a7fOJC0tcyC6rU40jUSTD8wHwYDVR0jBBgwFoAU\r\neEk1m7QDJoG0WmiMlBjOKloS\/u4wgYEGA1UdEQR6MHiCNCouY291Y2hiYXNlLjZj\r\nM2MwMDc1LWI0NGEtMTFlOS05NTE4LTRhOGQ3NjI5YzY5YS5zdmOCQCouY291Y2hi\r\nYXNlLjZjM2MwMDc1LWI0NGEtMTFlOS05NTE4LTRhOGQ3NjI5YzY5YS5zcGptdXJy\r\nYXkuY28udWswDQYJKoZIhvcNAQELBQADggEBAHl1PIHKeFBkS0pMZ5oiEijmdqAA\r\nGIcPCbwYKPtcBlJRkf4rX5yiD5Zn7A1E\/eR9zJD1X4qf4VbBqmf7\/o1t+vsENsTP\r\ntiTOTeiH2fBAs5t90ad3ahvqEWdGFIQLNwrBNbhTvZhYP5i1INecD5nrSHEDiBuN\r\n77MIdidThwnNSlwm\/L2tguQ4C2zhjOhhjjj1wKp8abEt816FjA9C\/BmwqheBRFRu\r\nj13XH\/YnXPyjeN5F4tM+MBRTZf0BB+ivuaf9BPvseSwbudfy0pAsb6zKCSkHc6OI\r\nwrzXpglJMaZblkASXm+CvTJ\/utxsrdLtqHBCmU5sik9Dw6OgcELqI+OlYWA=\r\n-----END CERTIFICADO-----\r\nsubject=CN = Servidor Couchbase\r\n\r\nissuer=CN = CA de Couchbase\r\n\r\n---\r\nNo se ha enviado ning\u00fan nombre de CA de certificado de cliente\r\nCompilaci\u00f3n de firma de pares: SHA256\r\nTipo de firma par: RSA\r\nClave temporal del servidor: DH, 2048 bits\r\n---\r\nSSL handshake ha le\u00eddo 2714 bytes y escrito 737 bytes\r\nVerificaci\u00f3n: OK\r\n---\r\nNuevo, TLSv1.2, Cifrado es DHE-RSA-AES256-SHA256\r\nLa clave p\u00fablica del servidor es de 2048 bits\r\nSe admite la renegociaci\u00f3n segura\r\nCompresi\u00f3n: NINGUNA\r\nExpansi\u00f3n: NINGUNA\r\nNo se negocia ALPN\r\nSesi\u00f3n SSL:\r\n    Protocolo : TLSv1.2\r\n    Cifrado: DHE-RSA-AES256-SHA256\r\n    Session-ID: 1D4242B756A51A14F1CA360DD7BB2DB74CEB4897E3365576658D2E5A7C7B36A0\r\n    Sesi\u00f3n-ID-ctx:\r\n    Master-Key: 11D43F8E21FD57A07D091913A892D1BBEC32A701491FCE0EAA1EAEA68084F3754CA746921F9E80FBA3EDB4F809A791A7\r\n    Identidad PSK: Ninguna\r\n    Pista de identidad PSK: Ninguna\r\n    Nombre de usuario SRP: Ninguno\r\n    Hora de inicio: 1564751720\r\n    Tiempo de espera : 7200 (seg)\r\n    Verificar c\u00f3digo de retorno: 0 (ok)\r\n    Secreto maestro extendido: no\r\n---\r\n<\/pre>\n<p>Adem\u00e1s, para los especialmente valientes, puedes comprobar que las direcciones DNS pasadas a los clientes son correctas:<\/p>\n<pre class=\"lang:default mark:1 highlight:0 decode:true\">curl -s https:\/\/couchbase-0000.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk:18091\/pools\/default\/nodeServices -u Administrador:BIH6mSJQ33jcIb24LZagxn0GHpxsJEWiiXSHNnyoXxp2GITJWMgc4aEOxVllcCR --cacert ca.crt | python -m json.tool\r\n{\r\n    \"nodesExt\": [\r\n        {\r\n            \"alternateAddresses\": {\r\n                \"externo\": {\r\n                    \"hostname\": \"couchbase-0000.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.spjmurray.co.uk\"\r\n                }\r\n            },\r\n            \"hostname\": \"couchbase-0000.couchbase.6c3c0075-b44a-11e9-9518-4a8d7629c69a.svc\",\r\n            \"services\": {\r\n                \"capi\": 8092,\r\n                \"capiSSL\": 18092,\r\n                \"indexAdmin\": 9100,\r\n                \"indexHttp\": 9102,\r\n                \"indexHttps\": 19102,\r\n                \"indexScan\": 9101,\r\n                \"indexStreamCatchup\": 9104,\r\n                \"indexStreamInit\": 9103,\r\n                \"indexStreamMaint\": 9105,\r\n                \"kv\": 11210,\r\n                \"kvSSL\": 11207,\r\n                \"mgmt\": 8091,\r\n                \"mgmtSSL\": 18091,\r\n                \"moxi\": 11211,\r\n                \"n1ql\": 8093,\r\n                \"n1qlSSL\": 18093,\r\n                \"projector\": 9999\r\n            },\r\n            \"thisNode\": true\r\n        },\r\n<\/pre>\n<h2>Pr\u00f3ximos pasos<\/h2>\n<p>Couchbase Autonomous Operator 1.2.0 es un gran lanzamiento con muchas nuevas caracter\u00edsticas.  Los focos principales son la capacidad de actualizaci\u00f3n y la facilidad de uso. Esperamos que disfrutes haciendo cosas nuevas con \u00e9l tanto como nosotros hemos disfrutado cre\u00e1ndolo.  Como siempre, \u00a1sus comentarios son clave!<\/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<ul>\n<li>Operador aut\u00f3nomo 1.2.0 Trabajo en red:<a href=\"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-1-2-0-networking\/\"> https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>In my previous article I discussed\u2014from a high level\u2014the new Public Connectivity feature in Autonomous Operator 1.2.0.\u00a0 This was intentionally an abstract overview in order to coax the user to learn about the joys of DDNS, TLS and layer 3 [&hellip;]<\/p>","protected":false},"author":25957,"featured_media":7315,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9284,2225,2322,1813],"tags":[1545,2138,9262],"ppma_author":[9076],"class_list":["post-7314","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-autonomous-operator","category-cloud","category-kubernetes","category-security","tag-kubernetes","tag-kubernetes-operator","tag-tls-encryption"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Autonomous Operator 1.2.0 Public Connectivity - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Expose your Couchbase cluster with public connectivity with the Autonomous Operator for interconnection with cloud based as-a-service offerings.\" \/>\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-public-connectivity\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Autonomous Operator 1.2.0 Public Connectivity\" \/>\n<meta property=\"og:description\" content=\"Expose your Couchbase cluster with public connectivity with the Autonomous Operator for interconnection with cloud based as-a-service offerings.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-1-2-0-public-connectivity\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-06T14:45:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:06:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/post-box-2691454_960_720.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\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=\"12 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-public-connectivity\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/\"},\"author\":{\"name\":\"Simon Murray, Senior Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8b03ed823446340bba90154b6fcd7a23\"},\"headline\":\"Autonomous Operator 1.2.0 Public Connectivity\",\"datePublished\":\"2019-08-06T14:45:04+00:00\",\"dateModified\":\"2025-06-14T06:06:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/\"},\"wordCount\":2216,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/post-box-2691454_960_720.jpg\",\"keywords\":[\"kubernetes\",\"kubernetes operator\",\"TLS encryption\"],\"articleSection\":[\"Couchbase Autonomous Operator\",\"Couchbase Capella\",\"Kubernetes\",\"Security\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/\",\"name\":\"Autonomous Operator 1.2.0 Public Connectivity - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/post-box-2691454_960_720.jpg\",\"datePublished\":\"2019-08-06T14:45:04+00:00\",\"dateModified\":\"2025-06-14T06:06:17+00:00\",\"description\":\"Expose your Couchbase cluster with public connectivity with the Autonomous Operator for interconnection with cloud based as-a-service offerings.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/post-box-2691454_960_720.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/post-box-2691454_960_720.jpg\",\"width\":960,\"height\":640,\"caption\":\"Source https:\/\/pixabay.com\/photos\/post-box-post-mail-box-wall-dry-2691454\/\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Autonomous Operator 1.2.0 Public Connectivity\"}]},{\"@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":"Autonomous Operator 1.2.0 Public Connectivity - The Couchbase Blog","description":"Exponga su cl\u00faster Couchbase con conectividad p\u00fablica con el Operador Aut\u00f3nomo para la interconexi\u00f3n con ofertas as-a-service basadas en la nube.","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-public-connectivity\/","og_locale":"es_MX","og_type":"article","og_title":"Autonomous Operator 1.2.0 Public Connectivity","og_description":"Expose your Couchbase cluster with public connectivity with the Autonomous Operator for interconnection with cloud based as-a-service offerings.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-1-2-0-public-connectivity\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-08-06T14:45:04+00:00","article_modified_time":"2025-06-14T06:06:17+00:00","og_image":[{"width":960,"height":640,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/post-box-2691454_960_720.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":"12 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/"},"author":{"name":"Simon Murray, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8b03ed823446340bba90154b6fcd7a23"},"headline":"Autonomous Operator 1.2.0 Public Connectivity","datePublished":"2019-08-06T14:45:04+00:00","dateModified":"2025-06-14T06:06:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/"},"wordCount":2216,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/post-box-2691454_960_720.jpg","keywords":["kubernetes","kubernetes operator","TLS encryption"],"articleSection":["Couchbase Autonomous Operator","Couchbase Capella","Kubernetes","Security"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/","url":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/","name":"Autonomous Operator 1.2.0 Public Connectivity - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/post-box-2691454_960_720.jpg","datePublished":"2019-08-06T14:45:04+00:00","dateModified":"2025-06-14T06:06:17+00:00","description":"Exponga su cl\u00faster Couchbase con conectividad p\u00fablica con el Operador Aut\u00f3nomo para la interconexi\u00f3n con ofertas as-a-service basadas en la nube.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/post-box-2691454_960_720.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/post-box-2691454_960_720.jpg","width":960,"height":640,"caption":"Source https:\/\/pixabay.com\/photos\/post-box-post-mail-box-wall-dry-2691454\/"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-public-connectivity\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Autonomous Operator 1.2.0 Public Connectivity"}]},{"@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","author_category":"","last_name":"Murray","first_name":"Simon","job_title":"","user_url":"","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\/7314","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=7314"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7314\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/7315"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=7314"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=7314"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=7314"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=7314"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}