{"id":6155,"date":"2018-12-11T10:51:59","date_gmt":"2018-12-11T18:51:59","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=6155"},"modified":"2025-06-13T23:43:00","modified_gmt":"2025-06-14T06:43:00","slug":"autonomous-operator-testing-on-azure-aks","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-testing-on-azure-aks\/","title":{"rendered":"C\u00f3mo certificar Couchbase Autonomous Operator en Azure AKS"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Nuestro objetivo en el equipo de pruebas de Couchbase Kubernetes es probar rigurosamente la <a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/cloud\/kubernetes\/\">Operador aut\u00f3nomo<\/a> (AO) y certificamos los clusters subyacentes de Couchbase Server que gestiona el AO. Comprobamos que la AO crea, gestiona y recupera correctamente el cl\u00faster CB gestionado. Adem\u00e1s, comprobamos que el cl\u00faster CB, los servicios y las caracter\u00edsticas funcionan correctamente. Anteriormente, hemos realizado todas nuestras pruebas en cl\u00fasteres personalizados de Kubernetes y Openshift on-prem, pero ahora estamos certificando el AO en m\u00faltiples servicios de Kubernetes en la nube. La primera de estas certificaciones es para Azure Kubernetes Service (AKS). La ejecuci\u00f3n de nuestras pruebas con AKS plante\u00f3 nuevos retos a la hora de crear y configurar el entorno de prueba en comparaci\u00f3n con los entornos personalizados on-prem. Las soluciones a estos retos se destacan en este post.<\/span><\/p>\n<p><span style=\"font-weight: 400\">*<\/span><b>Nota<\/b><span style=\"font-weight: 400\"> - Couchbase Autonomous Operator todav\u00eda est\u00e1 en vista previa para desarrolladores en Azure AKS, y estamos apuntando a GA en nuestra pr\u00f3xima versi\u00f3n 1.2 prevista para el primer trimestre de 2019.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Requisitos para nuestro marco de pruebas de Kubernetes <\/span><\/h2>\n<p><span style=\"font-weight: 400\">Nuestro marco de pruebas ejecuta varios tipos diferentes de pruebas que van desde la necesaria creaci\u00f3n de cl\u00fasteres hasta la recuperaci\u00f3n de fallos multinodo con vol\u00famenes persistentes. Tambi\u00e9n probamos XDCR en 3 topolog\u00edas diferentes definidas por el lugar en el que residen los dos cl\u00fasteres CB: un \u00fanico cl\u00faster K8s, dos cl\u00fasteres K8s diferentes y uno K8s y otro no K8s. Para ejecutar el conjunto de pruebas completo debemos (1) configurar dos cl\u00fasteres AKS separados que permitan XDCR. (2) Nuestro marco de pruebas debe ser capaz de interactuar con cada cl\u00faster AKS a trav\u00e9s de la Internet p\u00fablica. (3) Tambi\u00e9n debemos ser capaces de llegar a los cl\u00fasteres CB dentro de los cl\u00fasteres AKS desde la Internet p\u00fablica. (4) Al menos una clase de almacenamiento din\u00e1mico debe estar presente en AKS para nuestras pruebas de volumen persistente. En la siguiente secci\u00f3n, se explicar\u00e1n los pasos que se han dado para cumplir estos requisitos.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6156\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/12\/AKS-Test-Topology.png\" alt=\"\" width=\"897\" height=\"583\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/AKS-Test-Topology.png 897w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/AKS-Test-Topology-300x195.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/AKS-Test-Topology-768x499.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/AKS-Test-Topology-20x13.png 20w\" sizes=\"auto, (max-width: 897px) 100vw, 897px\" \/><\/p>\n<h2><span style=\"font-weight: 400\">Creaci\u00f3n de cl\u00fasteres AKS listos para XDCR<\/span><\/h2>\n<p><span style=\"font-weight: 400\">El principal obst\u00e1culo para que XDCR funcione entre dos clusters CB (en K8s u otros) es que debe existir una ruta de Capa 3 entre los dos clusters CB. Los nodos CB utilizar\u00e1n direcciones IP internas proporcionadas por la API K8s en funci\u00f3n de la configuraci\u00f3n de red del cl\u00faster AKS. Por defecto, dos clusters AKS utilizar\u00e1n los mismos rangos de direcciones internas, lo que provocar\u00e1 que el tr\u00e1fico XDCR saliente nunca llegue a su destino en el otro cluster AKS. <\/span><b>La soluci\u00f3n consiste en configurar los dos clusters AKS de forma que sus redes internas puedan establecer peering. El peering permitir\u00e1 que los clusters CB de cada cluster AKS se comuniquen correctamente utilizando sus direcciones IP internas.<\/b><span style=\"font-weight: 400\"> Para configurar la interconexi\u00f3n de redes en AKS, debemos determinar los prefijos de red no superpuestos que se utilizar\u00e1n para cada cl\u00faster AKS. A continuaci\u00f3n, bas\u00e1ndonos en estos prefijos, debemos determinar una subred de cl\u00faster para los nodos Kubernetes, una subred de servicio para los pods Kubernetes que no se solapen con la subred de cl\u00faster, una direcci\u00f3n DNS en cada subred de servicio y una red superpuesta Docker. La siguiente tabla muestra la configuraci\u00f3n de red adecuada para cada cl\u00faster AKS.<\/span><\/p>\n<table style=\"height: 449px\" width=\"910\">\n<tbody>\n<tr>\n<td><b>Grupo<\/b><\/td>\n<td><span style=\"font-weight: 400\">Grupo AKS-1<\/span><\/td>\n<td><span style=\"font-weight: 400\">Grupo AKS-2<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Prefijo<\/b><\/td>\n<td><span style=\"font-weight: 400\">10.0.0.0\/12<\/span><\/td>\n<td><span style=\"font-weight: 400\">10.16.0.0\/12<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Subred de cl\u00faster<\/b><\/td>\n<td><span style=\"font-weight: 400\">10.8.0.0\/16<\/span><\/td>\n<td><span style=\"font-weight: 400\">10.24.0.0\/16<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Subred de servicio<\/b><\/td>\n<td><span style=\"font-weight: 400\">10.0.0.0\/16<\/span><\/td>\n<td><span style=\"font-weight: 400\">10.16.0.0\/16<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Direcci\u00f3n DNS<\/b><\/td>\n<td><span style=\"font-weight: 400\">10.0.0.10<\/span><\/td>\n<td><span style=\"font-weight: 400\">10.16.0.10<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Direcci\u00f3n del puente Docker<\/b><\/td>\n<td><span style=\"font-weight: 400\">172.17.0.1\/16<\/span><\/td>\n<td><span style=\"font-weight: 400\">172.17.0.1\/16<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400\">Ahora que la configuraci\u00f3n de red adecuada est\u00e1 determinada podemos crear estos dos clusters AKS desde el Portal Azure. La creaci\u00f3n de cada cl\u00faster seguir\u00e1 principalmente las instrucciones proporcionadas por Azure aqu\u00ed, <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/kubernetes-walkthrough-portal\">https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/kubernetes-walkthrough-portal<\/a> [1], con la \u00fanica diferencia de la configuraci\u00f3n de la red (paso 3). Estos pasos ser\u00e1n para AKS-cluster-1 y utilizar\u00e1n los valores de red correspondientes determinados anteriormente. Los pasos para AKS-cluster-2 ser\u00e1n los mismos, utilizando los valores de red de AKS-cluster-2. Una vez alcanzado el paso de red, active el enrutamiento de aplicaciones HTTP y elija la configuraci\u00f3n de red avanzada.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-6160\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-1024x758.png\" alt=\"\" width=\"900\" height=\"666\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-1024x758.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-300x222.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-768x569.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-1536x1138.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-20x15.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-1320x978.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM.png 1542w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Cree una nueva red virtual utilizando el prefijo y la subred del cl\u00faster determinados anteriormente.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-6159\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-10-24-at-3.20.58-PM-1024x639.png\" alt=\"\" width=\"900\" height=\"562\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.20.58-PM-1024x639.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.20.58-PM-300x187.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.20.58-PM-768x479.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.20.58-PM-1536x958.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.20.58-PM-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.20.58-PM-1320x824.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.20.58-PM.png 1702w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Rellene los campos restantes de la pesta\u00f1a de red con los valores de subred de servicio, direcci\u00f3n DNS y superposici\u00f3n Docker.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-6160\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-1024x758.png\" alt=\"\" width=\"900\" height=\"666\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-1024x758.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-300x222.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-768x569.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-1536x1138.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-20x15.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM-1320x978.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.21.50-PM.png 1542w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><span style=\"font-weight: 400\">Proceda a configurar el cl\u00faster AKS de acuerdo con la documentaci\u00f3n. Mientras se despliega el cl\u00faster AKS-1, configure el cl\u00faster AKS-2 siguiendo los mismos pasos.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ahora que tenemos dos cl\u00fasteres AKS con la configuraci\u00f3n de red adecuada, podemos configurar el peering de red. En la interfaz de usuario, vaya a la red virtual AKS-cluster-1-vnet creada para AKS-cluster-1, seleccione la pesta\u00f1a Peerings y haga clic en Add para crear un nuevo peering.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-6161\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-10-24-at-3.57.13-PM-1024x582.png\" alt=\"\" width=\"900\" height=\"512\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.57.13-PM-1024x582.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.57.13-PM-300x170.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.57.13-PM-768x436.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.57.13-PM-1536x872.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.57.13-PM-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.57.13-PM-1320x750.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.57.13-PM.png 2048w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><span style=\"font-weight: 400\">Asigne al peering un nombre como AKS-cluster-1-AKS-cluster-2 y seleccione AKS-cluster-2-vnet como red virtual.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-6162\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-10-24-at-3.59.46-PM-1024x994.png\" alt=\"\" width=\"900\" height=\"874\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.59.46-PM-1024x994.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.59.46-PM-300x291.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.59.46-PM-768x745.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.59.46-PM-50x50.png 50w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.59.46-PM-20x20.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-3.59.46-PM.png 1156w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">El peering requiere que ambas redes est\u00e9n peerizadas, por lo que tambi\u00e9n debemos configurar el peering de AKS-cluster-2-vnet a AKS-cluster-1-vnet de forma similar. Una vez completado, los dos cl\u00fasteres AKS pueden alojar cl\u00fasteres CB con XDCR.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Acceso a la API de AKS Kubernetes a trav\u00e9s de la Internet p\u00fablica<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Dado que nuestro marco de pruebas se ejecuta desde fuera de AKS, tendremos que configurar el acceso externo a la API de Kubernetes para cada cl\u00faster AKS. Este proceso es relativamente sencillo. Tenemos que modificar las reglas de entrada y salida del grupo de seguridad de red para cada cl\u00faster AKS. Vaya al grupo de seguridad de red para AKS-cluster-1, seleccione Reglas de seguridad entrantes y, a continuaci\u00f3n, Agregar para crear una nueva regla. Para simplificar la configuraci\u00f3n, cree esta regla permitiendo cualquier IP\/puerto de origen e IP\/puerto de destino. Asigne a esta regla el n\u00famero de prioridad 102.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-6163\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-10-24-at-4.03.02-PM-1024x570.png\" alt=\"\" width=\"900\" height=\"501\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.03.02-PM-1024x570.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.03.02-PM-300x167.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.03.02-PM-768x427.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.03.02-PM-1536x855.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.03.02-PM-2048x1139.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.03.02-PM-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.03.02-PM-1320x734.png 1320w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><br \/>\n<span style=\"font-weight: 400\">Ahora, haga lo mismo para las reglas de seguridad de salida. A continuaci\u00f3n, modifique las reglas de seguridad de entrada y salida para AKS-cluster-2 de forma similar.<\/span><\/p>\n<p><span style=\"font-weight: 400\">El siguiente paso es obtener el archivo kubeconfig (credenciales) para cada cl\u00faster AKS. El marco de pruebas utiliza estos archivos para acceder a la API de Kubernetes e interactuar con ella. Aseg\u00farese de tener Azure CLI instalado localmente, como se indica aqu\u00ed: <a href=\"https:\/\/docs.microsoft.com\/en-us\/cli\/azure\/install-azure-cli?view=azure-cli-latest\">https:\/\/docs.microsoft.com\/en-us\/cli\/azure\/install-azure-cli?view=azure-cli-latest<\/a> [2]. Tambi\u00e9n necesitar\u00e1 tener kubectl instalado localmente, como se indica aqu\u00ed: <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\">https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/<\/a> [3]. Una vez que ambos est\u00e9n instalados y funcionando, ejecuta los siguientes comandos para extraer el archivo kubeconfig para AKS-cluster-1 y AKS-cluster-2:<\/span><\/p>\n<pre class=\"\">az aks get-credentials --resource-group AKS-cluster-1 --name aks-cluster-1\r\naz aks get-credentials --resource-group AKS-cluster-2 --name aks-cluster-2<\/pre>\n<p><span style=\"font-weight: 400\">Las credenciales del cluster se almacenar\u00e1n en el archivo ~\/.kube\/config. Para nuestro marco de pruebas, separamos las credenciales de cada cl\u00faster en sus propios archivos: ~\/.kube\/config_aks_cluster_1 y ~\/.kube\/config_aks_cluster_2. <\/span><\/p>\n<h2><span style=\"font-weight: 400\">Acceso a los CB Pods en AKS<\/span><\/h2>\n<p><span style=\"font-weight: 400\">En este punto, nuestro marco de pruebas puede interactuar con la API de Kubernetes de dos cl\u00fasteres AKS. Esto permite que el marco de pruebas instale el AO y cree cl\u00fasteres CB gestionados por AO para nuestras pruebas. El marco de pruebas, sin embargo, necesita interactuar con los pods CB a trav\u00e9s de llamadas REST para la mayor\u00eda de nuestras pruebas. Anteriormente, el marco de prueba tendr\u00eda el AO exponer la API REST CB como un servicio Kubernetes nodeport. Este servicio crear\u00eda un puerto en el nodo Kubernetes, que reenviar\u00eda el tr\u00e1fico al puerto de la API REST del pod CB dentro del nodo Kubernetes. Estos servicios eran accesibles a trav\u00e9s de la direcci\u00f3n IP privada del nodo Kubernetes. Esto no era un problema, ya que nuestro cl\u00faster Kubernetes on-prem y el marco de pruebas viv\u00edan en la misma red privada. Con AKS, sin embargo, nuestro marco de pruebas no est\u00e1 colocado con los nodos AKS Kubernetes y no puede acceder a un servicio de puerto de nodo que utiliza las IP privadas de estos nodos. <\/span><b>La soluci\u00f3n a esto es simple: una vez que el AO crea el cluster CB y el servicio nodeport, haga que el framework de pruebas cambie el campo Spec. Type a LoadBalancer. Esto se logra en el siguiente trozo de c\u00f3digo Go:<\/b><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-6164\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-10-24-at-4.44.48-PM-1024x205.png\" alt=\"\" width=\"900\" height=\"180\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.44.48-PM-1024x205.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.44.48-PM-300x60.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.44.48-PM-768x153.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.44.48-PM-20x4.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.44.48-PM-1320x264.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-10-24-at-4.44.48-PM.png 1462w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Cuando el Tipo de servicio nodeport se cambia a LoadBalancer, AKS asignar\u00e1 una IP p\u00fablica al servicio. Utilizando esta nueva IP p\u00fablica, el marco de pruebas puede realizar con \u00e9xito llamadas a la API REST de CB, incluso desde fuera de AKS. En la pr\u00f3xima versi\u00f3n importante, Autonomous Operator 1.2, el AO tendr\u00e1 la opci\u00f3n de exponer un servicio nodeport o un servicio load balancer y cualquier cambio en los servicios desplegados por el AO har\u00e1 que el AO vuelva a reconciliar el servicio. Por lo tanto, la soluci\u00f3n que utilizamos en nuestro marco de pruebas es s\u00f3lo temporal, y en el futuro, pasaremos a crear servicios de equilibrador de carga independientes y a utilizar el AO creado el equilibrador de carga.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Activaci\u00f3n de Vol\u00famenes Persistentes Din\u00e1micos<\/span><\/h2>\n<p><span style=\"font-weight: 400\">La OA permite que un cl\u00faster CB se vincule a vol\u00famenes persistentes aprovisionados din\u00e1micamente. Esto hace que el cl\u00faster CB sea muy resistente a la p\u00e9rdida de datos en caso de que uno o m\u00e1s pods CB se caigan. Nuestro marco de pruebas tiene muchos escenarios de fallo complejos que implican pods CB que almacenan datos en vol\u00famenes persistentes. En algunos escenarios de fallo, la OA reiniciar\u00e1 el pod fallido en un nodo Kubernetes diferente utilizando el volumen persistente de los pods fallidos. Por lo tanto, debemos utilizar vol\u00famenes persistentes que se puedan mover de un nodo Kubernetes a otro. En AKS se pueden utilizar dos tipos de clases de almacenamiento para vol\u00famenes persistentes: AzureDisk y AzureFile. La clase de almacenamiento por defecto que AKS proporciona es AzureDisk, pero esta clase de almacenamiento no puede crear vol\u00famenes persistentes movibles. AzureFile est\u00e1 implementado de una forma que permite vol\u00famenes persistentes m\u00f3viles y ser\u00e1 la soluci\u00f3n de clase de almacenamiento con la que probaremos en AKS. Azure proporciona instrucciones para configurar la clase de almacenamiento AzureFile aqu\u00ed:<\/span><\/p>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/azure-files-dynamic-pv\"><span style=\"font-weight: 400\">https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/azure-files-dynamic-pv<\/span><\/a><span style=\"font-weight: 400\"> [4].<\/span><\/p>\n<p><span style=\"font-weight: 400\">La configuraci\u00f3n implica crear primero una cuenta de almacenamiento con:<\/span><\/p>\n<pre class=\"\">az aks show --resource-group AKS-cluster-1 --name AKS-cluster-1 --query nodeResourceGroup -o tsv\r\nMC_AKS-cluster-1_aks-cluster-1_westus\r\n\r\naz storage account create --resource-group MC_AKS-cluster-1_aks-cluster-1_westus --name mystorageaccount --sku Standard_LRS<\/pre>\n<p><span style=\"font-weight: 400\">A continuaci\u00f3n, env\u00ede una clase de almacenamiento, un rol de cl\u00faster y una especificaci\u00f3n de vinculaci\u00f3n de rol de cl\u00faster a Kubernetes:<\/span><\/p>\n<pre>##azure-file-sc.yaml\r\nkind:StorageClass\r\napiVersion: storage.k8s.io\/v1\r\nmetadata:\r\n \u00a0name: azurefile\r\nprovisioner: kubernetes.io\/azure-file\r\nmountOptions:\r\n \u00a0- dir_mode=0777\r\n \u00a0- file_mode=0777\r\n \u00a0- uid=1000\r\n \u00a0- gid=1000\r\nparameters:\r\n \u00a0skuName: Standard_LRS\r\n \u00a0storageAccount: mystorageaccount<\/pre>\n<pre>kubectl apply -f azure-file-sc.yaml<\/pre>\n<pre>##azure-pvc-roles.yaml\r\n---\r\napiVersion: rbac.authorization.k8s.io\/v1\r\nkind: ClusterRole\r\nmetadata:\r\n \u00a0name: system:azure-cloud-provider\r\nrules:\r\n- apiGroups: ['']\r\n \u00a0resources: ['secrets']\r\n \u00a0verbs: \u00a0\u00a0\u00a0\u00a0['get','create']\r\n---\r\napiVersion: rbac.authorization.k8s.io\/v1\r\nkind: ClusterRoleBinding\r\nmetadata:\r\n \u00a0name: system:azure-cloud-provider\r\nroleRef:\r\n \u00a0kind: ClusterRole\r\n \u00a0apiGroup: rbac.authorization.k8s.io\r\n \u00a0name: system:azure-cloud-provider\r\nsubjects:\r\n- kind: ServiceAccount&lt;\r\n \u00a0name: persistent-volume-binder\r\n \u00a0namespace: kube-system<\/pre>\n<pre>kubectl apply -f azure-pvc-roles.yaml<\/pre>\n<p><span style=\"font-weight: 400\">Ahora tenemos nuestra clase de almacenamiento AzureFile configurada y lista para su uso en AKS-cluster-1. Debemos hacer el mismo proceso para AKS-cluster-2.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Comprobaci\u00f3n del operador<\/span><\/h2>\n<p><span style=\"font-weight: 400\">En este punto, tenemos todo lo que necesitamos para ejecutar el conjunto completo de pruebas para el AO: 2 cl\u00fasteres Kubernetes listos para XDCR, accesibles desde Internet p\u00fablico (API Kubernetes y API REST CB), con vol\u00famenes persistentes din\u00e1micos habilitados. Durante la prueba inicial, observamos algunos fallos extra\u00f1os. Estos fueron causados principalmente por los tiempos de espera en nuestro marco de prueba, y hemos sido capaces de identificar la causa: AKS es extremadamente lento en comparaci\u00f3n con el cl\u00faster Kubernetes on-prem. El tiempo que se tarda en poner en marcha un pod CB puede ser hasta 5 veces mayor. Para resolver este problema, tuvimos que crear tiempos de espera variables en funci\u00f3n del tipo de cl\u00faster Kubernetes utilizado. Despu\u00e9s de eso, todas las pruebas se ejecutaron correctamente, y no se encontraron problemas significativos con el cl\u00faster AO o CB.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Conclusi\u00f3n<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Recientemente, el equipo de pruebas de Couchbase se ha centrado en certificar la OA para su uso en servicios primarios de Kubernetes proporcionados por la nube, como AKS, EKS y GCP. La primera nube en la que nos centramos fue AKS, y supuso varios retos espec\u00edficos de la plataforma, como la configuraci\u00f3n de red espec\u00edfica de la nube, la accesibilidad y la creaci\u00f3n de clases de almacenamiento. Sin embargo, resolvimos estos problemas y ahora podemos ejecutar nuestro marco de pruebas automatizado utilizando cl\u00fasteres AKS. Seguiremos trabajando en la certificaci\u00f3n de otras nubes en los pr\u00f3ximos meses, pero mientras tanto, divi\u00e9rtete en AKS.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Referencias:<\/span><\/p>\n<p><span style=\"font-weight: 400\">[1] <\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/kubernetes-walkthrough-portal\"><span style=\"font-weight: 400\">https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/kubernetes-walkthrough-portal<\/span><\/a><\/p>\n<p>[2] <a href=\"https:\/\/docs.microsoft.com\/en-us\/cli\/azure\/install-azure-cli?view=azure-cli-latest\"><span style=\"font-weight: 400\">https:\/\/docs.microsoft.com\/en-us\/cli\/azure\/install-azure-cli?view=azure-cli-latest<\/span><\/a><\/p>\n<p>[3] <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\"><span style=\"font-weight: 400\">https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/<\/span><\/a><\/p>\n<p>[4] <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/azure-files-dynamic-pv\"><span style=\"font-weight: 400\">https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/azure-files-dynamic-pv<\/span><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Our goal on the Couchbase Kubernetes testing team is to rigorously test the Autonomous Operator (AO) and certify the underlying Couchbase Server clusters that the AO manages. We test the AO for proper creation, management, and failure recovery of the [&hellip;]<\/p>","protected":false},"author":13828,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9284,2225,2322],"tags":[1545,1673],"ppma_author":[9069],"class_list":["post-6155","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-autonomous-operator","category-cloud","category-kubernetes","tag-kubernetes","tag-microsoft-azure"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Certify Couchbase Autonomous Operator On Azure AKS<\/title>\n<meta name=\"description\" content=\"How we built our test framework to certify the Couchbase Autonomous Operator on Azure ensuring proper creation, management, and recovery.\" \/>\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-testing-on-azure-aks\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Certify Couchbase Autonomous Operator On Azure AKS\" \/>\n<meta property=\"og:description\" content=\"How we built our test framework to certify the Couchbase Autonomous Operator on Azure ensuring proper creation, management, and recovery.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-testing-on-azure-aks\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-11T18:51:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:43:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/AKS-Test-Topology.png\" \/>\n\t<meta property=\"og:image:width\" content=\"897\" \/>\n\t<meta property=\"og:image:height\" content=\"583\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Korrigan Clark\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Korrigan Clark\" \/>\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\/autonomous-operator-testing-on-azure-aks\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/\"},\"author\":{\"name\":\"Korrigan Clark\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7c204a2d8fcb7858db7ab30e0a02fee8\"},\"headline\":\"How to Certify Couchbase Autonomous Operator On Azure AKS\",\"datePublished\":\"2018-12-11T18:51:59+00:00\",\"dateModified\":\"2025-06-14T06:43:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/\"},\"wordCount\":1753,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"kubernetes\",\"Microsoft Azure\"],\"articleSection\":[\"Couchbase Autonomous Operator\",\"Couchbase Capella\",\"Kubernetes\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/\",\"name\":\"How to Certify Couchbase Autonomous Operator On Azure AKS\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2018-12-11T18:51:59+00:00\",\"dateModified\":\"2025-06-14T06:43:00+00:00\",\"description\":\"How we built our test framework to certify the Couchbase Autonomous Operator on Azure ensuring proper creation, management, and recovery.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Certify Couchbase Autonomous Operator On Azure AKS\"}]},{\"@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\/7c204a2d8fcb7858db7ab30e0a02fee8\",\"name\":\"Korrigan Clark\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/0ebfb10631fa5355ed00af2eb7ca5911\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/17fb5623a0f44f54900424157335e2135c62a342f12a14cabe152a9d6034fd4d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/17fb5623a0f44f54900424157335e2135c62a342f12a14cabe152a9d6034fd4d?s=96&d=mm&r=g\",\"caption\":\"Korrigan Clark\"},\"description\":\"Korrigan Clark is a Software Engineer in Test at Couchbase.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/korrigan-clark\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C\u00f3mo certificar Couchbase Autonomous Operator en Azure AKS","description":"C\u00f3mo construimos nuestro marco de pruebas para certificar el Operador Aut\u00f3nomo Couchbase en Azure asegurando la correcta creaci\u00f3n, gesti\u00f3n y recuperaci\u00f3n.","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-testing-on-azure-aks\/","og_locale":"es_MX","og_type":"article","og_title":"How to Certify Couchbase Autonomous Operator On Azure AKS","og_description":"How we built our test framework to certify the Couchbase Autonomous Operator on Azure ensuring proper creation, management, and recovery.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/autonomous-operator-testing-on-azure-aks\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-12-11T18:51:59+00:00","article_modified_time":"2025-06-14T06:43:00+00:00","og_image":[{"width":897,"height":583,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/AKS-Test-Topology.png","type":"image\/png"}],"author":"Korrigan Clark","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Korrigan Clark","Est. reading time":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/"},"author":{"name":"Korrigan Clark","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7c204a2d8fcb7858db7ab30e0a02fee8"},"headline":"How to Certify Couchbase Autonomous Operator On Azure AKS","datePublished":"2018-12-11T18:51:59+00:00","dateModified":"2025-06-14T06:43:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/"},"wordCount":1753,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["kubernetes","Microsoft Azure"],"articleSection":["Couchbase Autonomous Operator","Couchbase Capella","Kubernetes"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/","url":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/","name":"C\u00f3mo certificar Couchbase Autonomous Operator en Azure AKS","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2018-12-11T18:51:59+00:00","dateModified":"2025-06-14T06:43:00+00:00","description":"C\u00f3mo construimos nuestro marco de pruebas para certificar el Operador Aut\u00f3nomo Couchbase en Azure asegurando la correcta creaci\u00f3n, gesti\u00f3n y recuperaci\u00f3n.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-testing-on-azure-aks\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Certify Couchbase Autonomous Operator On Azure AKS"}]},{"@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\/7c204a2d8fcb7858db7ab30e0a02fee8","name":"Korrigan Clark","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/0ebfb10631fa5355ed00af2eb7ca5911","url":"https:\/\/secure.gravatar.com\/avatar\/17fb5623a0f44f54900424157335e2135c62a342f12a14cabe152a9d6034fd4d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/17fb5623a0f44f54900424157335e2135c62a342f12a14cabe152a9d6034fd4d?s=96&d=mm&r=g","caption":"Korrigan Clark"},"description":"Korrigan Clark es Ingeniero de Software en Pruebas en Couchbase.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/korrigan-clark\/"}]}},"authors":[{"term_id":9069,"user_id":13828,"is_guest":0,"slug":"korrigan-clark","display_name":"Korrigan Clark","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/17fb5623a0f44f54900424157335e2135c62a342f12a14cabe152a9d6034fd4d?s=96&d=mm&r=g","author_category":"","last_name":"Clark","first_name":"Korrigan","job_title":"","user_url":"","description":"Korrigan Clark es Ingeniero de Software en Pruebas en Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/6155","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\/13828"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=6155"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/6155\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=6155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=6155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=6155"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=6155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}