{"id":5093,"date":"2018-05-08T06:00:56","date_gmt":"2018-05-08T13:00:56","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=5093"},"modified":"2024-09-12T01:27:29","modified_gmt":"2024-09-12T08:27:29","slug":"certification-of-the-couchbase-autonomous-operator","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/certification-of-the-couchbase-autonomous-operator\/","title":{"rendered":"Certifica\u00e7\u00e3o do operador aut\u00f4nomo do Couchbase"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">O Couchbase Autonomous Operator permite que voc\u00ea execute implementa\u00e7\u00f5es do Couchbase nativamente no Kubernetes de c\u00f3digo aberto ou na Enterprise Red Hat OpenShift Container Platform. Tenho o prazer de anunciar a disponibilidade do Couchbase Autonomous Operator 0.8 Beta Refresh hoje!<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Executar e gerenciar um cluster do Couchbase ficou muito mais f\u00e1cil com a introdu\u00e7\u00e3o do <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/introducing-couchbase-operator\/\"><span style=\"font-weight: 400;\">Operador aut\u00f4nomo do Couchbase para Kubernetes<\/span><\/a><span style=\"font-weight: 400;\">. Os usu\u00e1rios agora podem implantar o Couchbase sobre o Kubernetes e fazer com que o Couchbase Autonomous Operator cuide de grande parte do gerenciamento do cluster, como recupera\u00e7\u00e3o de falhas e dimensionamento multidimensional. No entanto, os usu\u00e1rios podem se sentir um pouco desconfort\u00e1veis em apenas sentar e observar o Couchbase Autonomous Operator fazer seu trabalho. Para aliviar um pouco a preocupa\u00e7\u00e3o deles, esta s\u00e9rie de tr\u00eas partes do blog abordar\u00e1 as diferentes maneiras pelas quais a equipe de Engenharia de Qualidade aqui na Couchbase oferece tranquilidade aos nossos clientes ao executar o Couchbase no Kubernetes.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Esta s\u00e9rie do blog destacar\u00e1 tr\u00eas tipos de testes que fazemos para o Couchbase no Kubernetes. A primeira postagem da s\u00e9rie se concentrar\u00e1 em testes manuais. A segunda publica\u00e7\u00e3o ser\u00e1 sobre o teste do Operador Aut\u00f4nomo do Couchbase. E a terceira postagem mostrar\u00e1 aos nossos usu\u00e1rios como testar as inst\u00e2ncias do Couchbase por conta pr\u00f3pria com o testrunner, nosso conjunto de testes funcionais.<\/span><\/p>\n<h4><b>Fase 1: <\/b><b>Certifica\u00e7\u00e3o manual do operador aut\u00f4nomo do Couchbase<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Os testes manuais costumam ser entediantes em compara\u00e7\u00e3o com as emo\u00e7\u00f5es dos testes automatizados, mas com o Kubernetes eles podem ser bem divertidos. Nesta postagem, vamos acompanhar a configura\u00e7\u00e3o do <\/span><a href=\"https:\/\/github.com\/couchbaselabs\/try-cb-python\"><span style=\"font-weight: 400;\">Aplicativo de amostra de viagem do Couchbase<\/span><\/a><span style=\"font-weight: 400;\"> com um cluster Couchbase gerenciado pelo operador como armazenamento de dados, tudo no Kubernetes. Depois que o aplicativo e o cluster estiverem configurados no Kubernetes, testaremos alguns cen\u00e1rios de dimensionamento e falha.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Nas se\u00e7\u00f5es a seguir, abordaremos:<\/span><\/p>\n<p>0: <span style=\"font-weight: 400;\">Pr\u00e9-requisitos e configura\u00e7\u00e3o<\/span><\/p>\n<p><span style=\"font-weight: 400;\">1: Implanta\u00e7\u00e3o do cluster<\/span><\/p>\n<p><span style=\"font-weight: 400;\">2: Configura\u00e7\u00e3o do cluster<\/span><\/p>\n<p><span style=\"font-weight: 400;\">3: Implementa\u00e7\u00e3o de aplicativos<\/span><\/p>\n<p><span style=\"font-weight: 400;\">4: Verifica\u00e7\u00e3o<\/span><\/p>\n<h5><b>Pr\u00e9-requisitos e configura\u00e7\u00e3o:<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">Para configurar esse aplicativo de amostra de viagem usando o Couchbase no Kubernetes, usaremos o minikube. As instru\u00e7\u00f5es para configurar o minikube podem ser encontradas aqui: <\/span><a href=\"https:\/\/kubernetes.io\/docs\/getting-started-guides\/minikube\/\"><span style=\"font-weight: 400;\">https:\/\/kubernetes.io\/docs\/getting-started-guides\/minikube\/<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Depois que o minikube estiver configurado, talvez voc\u00ea queira aumentar a contagem de mem\u00f3ria e CPU. Voc\u00ea precisar\u00e1 abrir o painel do Kubernetes para monitorar o uso do cluster:<\/span><em><span style=\"font-weight: 400;\"> painel de controle do minikube<\/span><\/em><\/p>\n<h5><b>Implanta\u00e7\u00e3o de cluster:<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">Depois de configurar o minikube, precisaremos inicializar o operador aut\u00f4nomo do Couchbase e o cluster do Couchbase que o operador gerenciar\u00e1. O arquivo YAML a seguir dir\u00e1 ao Kubernetes Master para criar uma implanta\u00e7\u00e3o do Couchbase Autonomous Operator:<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<pre class=\"lang:yaml decode:true\">deployment.yaml\r\n---\r\napiVersion: extensions\/v1beta1\r\nkind: Deployment\r\nmetadata:\r\n \u00a0name: couchbase-operator\r\nspec:\r\n \u00a0replicas: 1\r\n \u00a0template:\r\n \u00a0\u00a0\u00a0metadata:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0labels:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: couchbase-operator\r\n \u00a0\u00a0\u00a0spec:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0containers:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0- name: couchbase-operator\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0image: couchbase\/k8s-operator:0.8.0-beta\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0env:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- name: MY_POD_NAMESPACE\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0valueFrom:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0fieldRef:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0fieldPath: metadata.namespace\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- name: MY_POD_NAME\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0valueFrom:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0fieldRef:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0fieldPath: metadata.name\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ports:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- name: readiness-port\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0containerPort: 8080\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0readinessProbe:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0httpGet:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0path: \/readyz\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0port: readiness-port\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0initialDelaySeconds: 3\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0periodSeconds: 3\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0failureThreshold: 19<\/pre>\n<p><span style=\"font-weight: 400;\">Crie um arquivo chamado <em>deployment.yaml<\/em> e enviar esse YAML para o Kubernetes com: <em>kubectl create -f path\/to\/deployment.yaml<\/em>. Ap\u00f3s alguns segundos, a implanta\u00e7\u00e3o do operador dever\u00e1 aparecer no painel do Kubernetes.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5097\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/diagram1-1-1024x416.png\" alt=\"\" width=\"583\" height=\"237\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-1-1024x416.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-1-300x122.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-1-768x312.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-1-1536x624.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-1-2048x831.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-1-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-1-1320x536.png 1320w\" sizes=\"auto, (max-width: 583px) 100vw, 583px\" \/><\/p>\n<p><em><span style=\"font-weight: 400;\">Figura 1: Estado do cluster do Kubernetes ap\u00f3s a implanta\u00e7\u00e3o do Operador Aut\u00f4nomo do Couchbase.<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400;\">Em seguida, um segredo deve ser fornecido ao Kubernetes para que o Operador Aut\u00f4nomo do Couchbase possa gerenciar os n\u00f3s do Couchbase.<\/span><\/p>\n<pre class=\"lang:yaml decode:true\">secret.yaml\r\n---\r\napiVersion: v1\r\nkind: Secret\r\nmetadata:\r\n \u00a0name: cb-example-auth\r\ntype: Opaque\r\ndata:\r\n \u00a0username: QWRtaW5pc3RyYXRvcg==\r\n \u00a0password: cGFzc3dvcmQ=\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">Crie um arquivo chamado secret.yaml e envie o segredo para o Kubernetes com o seguinte: <em>kubectl create -f path\/to\/secret.yaml.<\/em><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Em seguida, vamos criar um cluster de 2 n\u00f3s do Couchbase. O YAML a seguir especifica um cluster com dois n\u00f3s, dois buckets (default e travel-sample) e todos os servi\u00e7os ativados:<\/span><\/p>\n<pre class=\"lang:yaml decode:true\">cb-cluster.yaml\r\n---\r\napiVersion: couchbase.database.couchbase.com\/v1beta1\r\nkind: CouchbaseCluster\r\nmetadata:\r\n \u00a0name: cb-example\r\nspec:\r\n \u00a0baseImage: couchbase\/server\r\n \u00a0version: enterprise-5.0.1\r\n \u00a0authSecret: cb-example-auth\r\n \u00a0exposeAdminConsole: true\r\n \u00a0paused: false\r\n \u00a0cluster:\r\n \u00a0\u00a0\u00a0dataServiceMemoryQuota: 256\r\n \u00a0\u00a0\u00a0indexServiceMemoryQuota: 256\r\n \u00a0\u00a0\u00a0searchServiceMemoryQuota: 256\r\n \u00a0\u00a0\u00a0indexStorageSetting: memory_optimized\r\n \u00a0\u00a0\u00a0autoFailoverTimeout: 10\r\n \u00a0buckets:\r\n \u00a0\u00a0\u00a0- name: default\r\n \u00a0\u00a0\u00a0\u00a0\u00a0type: couchbase\r\n \u00a0\u00a0\u00a0\u00a0\u00a0memoryQuota: 128\r\n \u00a0\u00a0\u00a0\u00a0\u00a0replicas: 1\r\n \u00a0\u00a0\u00a0\u00a0\u00a0ioPriority: high\r\n \u00a0\u00a0\u00a0\u00a0\u00a0evictionPolicy: fullEviction\r\n \u00a0\u00a0\u00a0\u00a0\u00a0conflictResolution: seqno\r\n \u00a0\u00a0\u00a0\u00a0\u00a0enableFlush: true\r\n \u00a0\u00a0\u00a0\u00a0\u00a0enableIndexReplica: false\r\n \u00a0\u00a0\u00a0- name: travel-sample\r\n \u00a0\u00a0\u00a0\u00a0\u00a0type: couchbase\r\n \u00a0\u00a0\u00a0\u00a0\u00a0memoryQuota: 128\r\n \u00a0\u00a0\u00a0\u00a0\u00a0replicas: 1\r\n \u00a0\u00a0\u00a0\u00a0\u00a0ioPriority: high\r\n \u00a0\u00a0\u00a0\u00a0\u00a0evictionPolicy: fullEviction\r\n \u00a0\u00a0\u00a0\u00a0\u00a0conflictResolution: seqno\r\n \u00a0\u00a0\u00a0\u00a0\u00a0enableFlush: true\r\n \u00a0\u00a0\u00a0\u00a0\u00a0enableIndexReplica: false\r\n \u00a0servers:\r\n \u00a0\u00a0\u00a0- size: 2\r\n \u00a0\u00a0\u00a0\u00a0\u00a0name: all_services\r\n \u00a0\u00a0\u00a0\u00a0\u00a0services:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- data\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- index\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- query\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- search\r\n \u00a0\u00a0\u00a0\u00a0\u00a0dataPath: \/opt\/couchbase\/var\/lib\/couchbase\/data\r\n \u00a0\u00a0\u00a0\u00a0\u00a0indexPath: \/opt\/couchbase\/var\/lib\/couchbase\/data<\/pre>\n<p><span style=\"font-weight: 400;\">Envie a configura\u00e7\u00e3o do cluster com: <em>kubectl create -f path\/to\/cb-cluster.yaml<\/em>.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5098\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/diagram1-2-1024x912.png\" alt=\"\" width=\"468\" height=\"417\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-2-1024x912.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-2-300x267.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-2-768x684.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-2-1536x1368.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-2-2048x1824.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-2-20x18.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-2-1320x1176.png 1320w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/p>\n<p><em><span style=\"font-weight: 400;\">Figura 2: Estado do cluster do Kubernetes ap\u00f3s o dimensionamento para 2 n\u00f3s do Couchbase.<\/span><\/em><\/p>\n<h5><b>Configura\u00e7\u00e3o de cluster:<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">Agora que temos um cluster de dois n\u00f3s gerenciado pelo Operador Aut\u00f4nomo do Couchbase, as atualiza\u00e7\u00f5es na configura\u00e7\u00e3o do cluster devem ser feitas no arquivo cb-cluster.yaml e reenviadas ao Kubernetes. Se alguma altera\u00e7\u00e3o for feita manualmente por meio da interface do usu\u00e1rio do Couchbase, o operador tomar\u00e1 medidas para realinhar o cluster com a configura\u00e7\u00e3o especificada em cb-cluster.yaml. Para fazer altera\u00e7\u00f5es no cluster, primeiro fa\u00e7a as altera\u00e7\u00f5es em cb-cluster.yaml e, em seguida, atualize o Kubernetes com: <em>kubectl apply -f path\/to\/cb-cluster.yaml<\/em><\/span><\/p>\n<p><span style=\"font-weight: 400;\">A pr\u00f3xima etapa \u00e9 carregar os dados da amostra de viagem e as defini\u00e7\u00f5es de \u00edndice no bucket de amostra de viagem do cluster. O comando a seguir chamar\u00e1 o cbimport no pod cb-example-0000: <em>kubectl exec pod cb-example-0000 -ti \/opt\/couchbase\/bin\/cbimport json -c 127.0.0.1:8091 -u Administrator -p password -b travel-sample -f sample -d \/opt\/couchbase\/samples\/travel-sample.zip \u00a0<\/em><\/span><\/p>\n<h5><b>Implementa\u00e7\u00e3o de aplicativos:<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">O cluster j\u00e1 est\u00e1 configurado, mas o aplicativo de amostra de viagem ainda n\u00e3o. Agora, precisamos criar uma imagem do docker que o Kubernetes usar\u00e1 para o aplicativo. O dockerfile abaixo extrair\u00e1 o aplicativo travel-sample do meu fork no github, https:\/\/github.com\/korry8911\/try-cb-python, e instalar\u00e1 todas as depend\u00eancias. O arquivo travel.py foi modificado para esta postagem do blog para usar o cliente python do Kubernetes para obter os IPs dos n\u00f3s do Couchbase em execu\u00e7\u00e3o no mesmo namespace do Kubernetes. <\/span><\/p>\n<pre class=\"lang:python decode:true\">#travel.py (modified)\r\n#https:\/\/github.com\/korry8911\/try-cb-python\/blob\/master\/travel.py#L20\r\n\r\nconfig.load_incluster_config()\r\nv1 = client.CoreV1Api()\r\nprint(\"Finding Couchbase Nodes:\")\r\nret = v1.list_pod_for_all_namespaces(watch=False)\r\ncbip = []\r\nfor i in ret.items:\r\n \u00a0\u00a0\u00a0print(\"%s\\t%s\\t%s\" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name))\r\n \u00a0\u00a0\u00a0if 'cb-example' in i.metadata.name:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cbip.append(i.status.pod_ip)<\/pre>\n<pre class=\"lang:sh decode:true\">#Dockerfile\r\nFROM ubuntu:14.04\r\nRUN apt-get update\r\nRUN apt-get install -y gcc g++ make cmake git-core libevent-dev libev-dev libssl-dev libffi-dev psmisc iptables zip unzip python-dev python-pip vim curl\r\n\r\n# build libcouchbase\r\nRUN git clone git:\/\/github.com\/couchbase\/libcouchbase.git &amp;&amp; \\\r\n \u00a0\u00a0\u00a0mkdir libcouchbase\/build\r\n\r\nWORKDIR libcouchbase\/build\r\nRUN ..\/cmake\/configure --prefix=\/usr &amp;&amp; \\\r\n \u00a0\u00a0\u00a0\u00a0\u00a0make &amp;&amp; \\\r\n \u00a0\u00a0\u00a0\u00a0\u00a0make install\r\n\r\nWORKDIR \/\r\nRUN git clone https:\/\/github.com\/korry8911\/try-cb-python.git\r\n\r\nWORKDIR try-cb-python\r\nARG BRANCH=5.0\r\nRUN git checkout $BRANCH\r\nRUN cat travel.py\r\n\r\n# install python deps\r\nRUN pip2 install --upgrade packaging appdirs\r\nRUN pip install -U pip setuptools\r\nRUN pip install paramiko &amp;&amp;\\\r\n \u00a0\u00a0\u00a0pip install gevent &amp;&amp;\\\r\n \u00a0\u00a0\u00a0pip install boto &amp;&amp;\\\r\n \u00a0\u00a0\u00a0pip install httplib2 &amp;&amp;\\\r\n \u00a0\u00a0\u00a0pip install pyyaml &amp;&amp;\\\r\n \u00a0\u00a0\u00a0pip install couchbase\r\n\r\nRUN pip install -r requirements.txt\r\nCOPY entrypoint.sh entrypoint.sh\r\nRUN chmod +x .\/entrypoint.sh\r\nENTRYPOINT [\"sh\", \"entrypoint.sh\"]<\/pre>\n<pre class=\"lang:sh decode:true\">#entrypoint.sh\r\n#!\/bin\/bash\r\npython travel.py\r\nwhile true; do sleep 1000; done<\/pre>\n<p><span style=\"font-weight: 400;\">Crie a imagem do docker do aplicativo de amostra de viagem com: <em>docker build -t your-dockerhub-handle\/travel-sample:latest<\/em>.\u00a0<\/span><span style=\"font-weight: 400;\">A imagem do docker precisa ser carregada no n\u00f3 de trabalho do Kubernetes. A maneira mais f\u00e1cil de fazer isso \u00e9 puxar a imagem do dockerhub. Envie a imagem de amostra de viagem com:\u00a0<\/span><em><span style=\"font-weight: 400;\">docker push your-dockerhub-handle\/travel-sample:latest.<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400;\">A configura\u00e7\u00e3o do aplicativo travel-sample \u00e9 definida no arquivo a seguir. Certifique-se de adicionar seu identificador de docker.<\/span><\/p>\n<pre class=\"lang:yaml decode:true\">travel-sample.yaml \r\n---\r\napiVersion: extensions\/v1beta1\r\nkind: Deployment\r\nmetadata:\r\n \u00a0name: travel-sample\r\nspec:\r\n \u00a0replicas: 1\r\n \u00a0template:\r\n \u00a0\u00a0\u00a0metadata:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0labels:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: travel-sample\r\n \u00a0\u00a0\u00a0spec:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0containers:\r\n \u00a0\u00a0\u00a0\u00a0\u00a0- name: travel-sample\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0image: your-dockerhub-handle\/travel-sample:latest<\/pre>\n<p><span style=\"font-weight: 400;\">Carregue o aplicativo de amostra de viagem com: <em>kubectl create -f path\/to\/travel-sample.yaml.<\/em><\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5099\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/diagram1-3-1024x912.png\" alt=\"\" width=\"453\" height=\"404\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-3-1024x912.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-3-300x267.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-3-768x684.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-3-1536x1368.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-3-2048x1824.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-3-20x18.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-3-1320x1176.png 1320w\" sizes=\"auto, (max-width: 453px) 100vw, 453px\" \/><\/p>\n<p><em><span style=\"font-weight: 400;\">Figura 3: Estado do cluster do Kubernetes ap\u00f3s a implanta\u00e7\u00e3o do aplicativo de amostra de viagem.<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400;\">O Kubernetes, por padr\u00e3o, n\u00e3o permite o acesso a pods de fora do cluster. Portanto, para acessar o aplicativo travel-sample, um servi\u00e7o node-port deve ser criado para fazer proxy da porta na qual o aplicativo travel-sample escuta as solicita\u00e7\u00f5es recebidas.<\/span><\/p>\n<pre class=\"lang:yaml decode:true\">nodeport.yaml\r\n---\r\nkind: Service\r\napiVersion: v1\r\nmetadata:\r\n \u00a0name: travelsample\r\nspec:\r\n \u00a0type: NodePort\r\n  \u00a0ports:\r\n \u00a0\u00a0\u00a0- port: 8080\r\n \u00a0\u00a0\u00a0\u00a0\u00a0nodePort: 32000\r\n \u00a0selector:\r\n \u00a0\u00a0\u00a0name: travelsample<\/pre>\n<p><span style=\"font-weight: 400;\">Crie o servi\u00e7o node-port para a amostra de viagem com: <em>kubectl create -f path\/to\/nodeport.yaml.<\/em><\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5100\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/diagram1-4-1024x912.png\" alt=\"\" width=\"459\" height=\"409\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-4-1024x912.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-4-300x267.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-4-768x684.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-4-1536x1368.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-4-2048x1824.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-4-20x18.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-4-1320x1176.png 1320w\" sizes=\"auto, (max-width: 459px) 100vw, 459px\" \/><\/p>\n<p><em><span style=\"font-weight: 400;\">Figura 4: Estado do cluster do Kubernetes ap\u00f3s adicionar um servi\u00e7o node-port.<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400;\">Como estamos executando o aplicativo no minikube, devemos acessar o aplicativo de amostra de viagem executando: <em>Exemplo de viagens de servi\u00e7o minikube.<\/em><\/span><\/p>\n<h5><b>Verifica\u00e7\u00e3o:<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">Agora que j\u00e1 brincamos com o aplicativo de amostra de viagem, vamos aumentar o cluster do Couchbase em um n\u00f3. Para fazer isso, altere o par\u00e2metro de tamanho na se\u00e7\u00e3o de servidor do arquivo cb-cluster.yaml de 2 para 3. Em seguida, envie as altera\u00e7\u00f5es para o Kubernetes com: <em>kubectl apply -f path\/to\/cb-cluster.yaml.<\/em><\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5101\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/diagram1-5-1024x912.png\" alt=\"\" width=\"480\" height=\"427\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-5-1024x912.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-5-300x267.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-5-768x684.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-5-1536x1368.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-5-2048x1824.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-5-20x18.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-5-1320x1176.png 1320w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Figura 5: Estado do cluster do Kubernetes ap\u00f3s o dimensionamento para 3 n\u00f3s do Couchbase.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">O cluster do Couchbase agora tem 3 n\u00f3s, o que \u00e9 suficiente para testar o recurso de autofailover dos operadores aut\u00f4nomos do Couchbase. Vamos eliminar um n\u00f3 do Couchbase para simular um cen\u00e1rio de falha e observar o Operador Aut\u00f4nomo do Couchbase reequilibrar automaticamente um novo n\u00f3 de volta ao cluster. Elimine um pod do Couchbase navegando at\u00e9 Pods no painel do Kubernetes e excluindo o pod cb-example-0002.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ap\u00f3s o per\u00edodo de tempo limite do autofailover de 10 segundos, o Operador Aut\u00f4nomo do Couchbase ejetar\u00e1 o n\u00f3 com falha do cluster, inicializar\u00e1 um novo n\u00f3 e far\u00e1 o rebalanceamento do n\u00f3 no cluster. Durante todo esse processo, os usu\u00e1rios podem jogar com o aplicativo de amostra de viagem sem nenhuma interrup\u00e7\u00e3o de servi\u00e7o<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5102\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/diagram1-6-1024x912.png\" alt=\"\" width=\"494\" height=\"440\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-6-1024x912.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-6-300x267.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-6-768x684.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-6-1536x1368.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-6-2048x1824.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-6-20x18.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/diagram1-6-1320x1176.png 1320w\" sizes=\"auto, (max-width: 494px) 100vw, 494px\" \/><\/p>\n<p><em><span style=\"font-weight: 400;\">Figura 6: Estado do cluster do Kubernetes ap\u00f3s a recupera\u00e7\u00e3o de uma falha no n\u00f3 do Couchbase.<\/span><\/em><\/p>\n<h5><b>Conclus\u00e3o:<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">O Couchbase Autonomous Operator elimina grande parte do inc\u00f4modo de executar um cluster do Couchbase em <\/span><span style=\"font-weight: 400;\">Kubernetes de c\u00f3digo aberto e\/ou Enterprise Red Hat OpenShift Container Platform. O estado desejado do cluster \u00e9 mantido automaticamente, mesmo em caso de falha do n\u00f3. A certifica\u00e7\u00e3o manual do recurso de recupera\u00e7\u00e3o de n\u00f3s \u00e9 divertida, mas s\u00e3o necess\u00e1rios mais testes. Na pr\u00f3xima publica\u00e7\u00e3o, analisaremos em detalhes nossa abordagem de teste funcional para outros recursos do Couchbase Autonomous Operator.<\/span><\/p>\n<h2>Pronto para dar uma olhada no Beta?<\/h2>\n<ul>\n<li>\u00c9 f\u00e1cil colocar as m\u00e3os na vers\u00e3o beta seguindo as etapas abaixo\u00a0<a href=\"https:\/\/docs.couchbase.com\/prerelease\/couchbase-operator\/beta\/prerequisiteAndSetup.html\">Pr\u00e9-requisitos e configura\u00e7\u00e3o<\/a>\u00a0para implantar o Couchbase Operator na plataforma Kubernetes ou OpenShift.<\/li>\n<li>Link para o Dockerfile\n<ul>\n<li>Servidor Couchbase -\u00a0<a href=\"https:\/\/hub.docker.com\/_\/couchbase\/\">https:\/\/hub.docker.com\/_\/couchbase\/\u00a0<\/a><\/li>\n<li>Operador do Couchbase -\u00a0<a href=\"https:\/\/hub.docker.com\/r\/couchbase\/k8s-operator\/\">https:\/\/hub.docker.com\/r\/couchbase\/k8s-operator\/<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Se voc\u00ea tiver alguma d\u00favida, coment\u00e1rio ou feedback adicional, deixe um coment\u00e1rio abaixo ou publique em\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/forums\/\">https:\/\/www.couchbase.com\/forums\/<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>The Couchbase Autonomous Operator enables you to run Couchbase deployments natively on Open Source Kubernetes or Enterprise Red Hat OpenShift Container Platform. I&#8217;m excited to announce the availability of the Couchbase Autonomous Operator 0.8 Beta Refresh today! Running and managing [&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":[1815,1821,1816],"tags":[],"ppma_author":[9069],"class_list":["post-5093","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-architecture","category-couchbase-server"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Certification of the Couchbase Autonomous Operator<\/title>\n<meta name=\"description\" content=\"The post focuses on the availability of the Couchbase Autonomous Operator 0.8 Beta enables running Couchbase deployments natively on Open Source Kubernetes.\" \/>\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\/pt\/certification-of-the-couchbase-autonomous-operator\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Certification of the Couchbase Autonomous Operator\" \/>\n<meta property=\"og:description\" content=\"The post focuses on the availability of the Couchbase Autonomous Operator 0.8 Beta enables running Couchbase deployments natively on Open Source Kubernetes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/certification-of-the-couchbase-autonomous-operator\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-08T13:00:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T08:27:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/diagram1-1-1024x416.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=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/\"},\"author\":{\"name\":\"Korrigan Clark\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7c204a2d8fcb7858db7ab30e0a02fee8\"},\"headline\":\"Certification of the Couchbase Autonomous Operator\",\"datePublished\":\"2018-05-08T13:00:56+00:00\",\"dateModified\":\"2024-09-12T08:27:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/\"},\"wordCount\":1261,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Architecture\",\"Couchbase Server\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/\",\"name\":\"Certification of the Couchbase Autonomous Operator\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2018-05-08T13:00:56+00:00\",\"dateModified\":\"2024-09-12T08:27:29+00:00\",\"description\":\"The post focuses on the availability of the Couchbase Autonomous Operator 0.8 Beta enables running Couchbase deployments natively on Open Source Kubernetes.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#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\/certification-of-the-couchbase-autonomous-operator\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Certification of the Couchbase Autonomous Operator\"}]},{\"@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\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\":\"pt-BR\",\"@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\/pt\/author\/korrigan-clark\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Certifica\u00e7\u00e3o do operador aut\u00f4nomo do Couchbase","description":"A postagem se concentra na disponibilidade do Couchbase Autonomous Operator 0.8 Beta, que permite executar implementa\u00e7\u00f5es do Couchbase nativamente no Kubernetes de c\u00f3digo aberto.","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\/pt\/certification-of-the-couchbase-autonomous-operator\/","og_locale":"pt_BR","og_type":"article","og_title":"Certification of the Couchbase Autonomous Operator","og_description":"The post focuses on the availability of the Couchbase Autonomous Operator 0.8 Beta enables running Couchbase deployments natively on Open Source Kubernetes.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/certification-of-the-couchbase-autonomous-operator\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-05-08T13:00:56+00:00","article_modified_time":"2024-09-12T08:27:29+00:00","og_image":[{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/diagram1-1-1024x416.png","type":"","width":"","height":""}],"author":"Korrigan Clark","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Korrigan Clark","Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/"},"author":{"name":"Korrigan Clark","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7c204a2d8fcb7858db7ab30e0a02fee8"},"headline":"Certification of the Couchbase Autonomous Operator","datePublished":"2018-05-08T13:00:56+00:00","dateModified":"2024-09-12T08:27:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/"},"wordCount":1261,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Best Practices and Tutorials","Couchbase Architecture","Couchbase Server"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/","url":"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/","name":"Certifica\u00e7\u00e3o do operador aut\u00f4nomo do Couchbase","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2018-05-08T13:00:56+00:00","dateModified":"2024-09-12T08:27:29+00:00","description":"A postagem se concentra na disponibilidade do Couchbase Autonomous Operator 0.8 Beta, que permite executar implementa\u00e7\u00f5es do Couchbase nativamente no Kubernetes de c\u00f3digo aberto.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/certification-of-the-couchbase-autonomous-operator\/#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\/certification-of-the-couchbase-autonomous-operator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Certification of the Couchbase Autonomous Operator"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados 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":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@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":"pt-BR","@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 \u00e9 engenheiro de software de teste na Couchbase.","url":"https:\/\/www.couchbase.com\/blog\/pt\/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 \u00e9 engenheiro de software de teste na Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/5093","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/13828"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=5093"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/5093\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=5093"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=5093"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=5093"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=5093"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}