{"id":11365,"date":"2021-07-05T03:47:22","date_gmt":"2021-07-05T10:47:22","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=11365"},"modified":"2025-06-13T22:39:23","modified_gmt":"2025-06-14T05:39:23","slug":"couchbase-autonomous-operator-proof-of-concept-guide","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-autonomous-operator-proof-of-concept-guide\/","title":{"rendered":"Como criar uma prova de conceito de operador aut\u00f4nomo do Couchbase"},"content":{"rendered":"<p><strong>Sempre que ou\u00e7o sobre a primeira experi\u00eancia de um cliente<\/strong> com o <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/cloud\/kubernetes\/?ref=blog\" rel=\"noopener\" target=\"_blank\">Operador aut\u00f4nomo do Couchbase (CAO)<\/a> para o Kubernetes, sua primeira pergunta tende a ser \"Quanto custa?\".<\/p>\n<p>A resposta \u00e9 que ele j\u00e1 est\u00e1 inclu\u00eddo em sua assinatura da Enterprise Edition. Feliz com isso, a maioria dos clientes passa para a pr\u00f3xima etapa, que \u00e9 a realiza\u00e7\u00e3o de uma pequena prova de conceito (PoC) usando o Couchbase Autonomous Operator. <\/p>\n<p>Se voc\u00ea j\u00e1 estiver usando <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/capella\/\" rel=\"noopener\" target=\"_blank\">Couchbase<\/a>Se voc\u00ea est\u00e1 ciente das pr\u00e1ticas de manuten\u00e7\u00e3o necess\u00e1rias, gerenciando os n\u00f3s de servi\u00e7o, as atualiza\u00e7\u00f5es de vers\u00e3o etc., voc\u00ea deve estar ciente de que o Couchbase \u00e9 um sistema de gerenciamento de servi\u00e7os. Tamb\u00e9m h\u00e1 necessidade de manuten\u00e7\u00e3o fora do Couchbase, como atualiza\u00e7\u00f5es de sistema operacional. Todas essas etapas de manuten\u00e7\u00e3o custam recursos humanos. <\/p>\n<p>O CAO alivia essa press\u00e3o de recursos humanos, permitindo que voc\u00ea automatize o gerenciamento de tarefas comuns do Couchbase, como a configura\u00e7\u00e3o, a cria\u00e7\u00e3o, o dimensionamento e a recupera\u00e7\u00e3o de clusters do Couchbase. Ao reduzir a complexidade da execu\u00e7\u00e3o de um cluster do Couchbase, ele permite que voc\u00ea se concentre na configura\u00e7\u00e3o desejada e n\u00e3o se preocupe com os detalhes da implementa\u00e7\u00e3o manual e do gerenciamento do ciclo de vida.<\/p>\n<p>Muitas vezes, com as melhores inten\u00e7\u00f5es, os clientes entram em uma PoC e, \u00e0s vezes, \u00e9 a primeira experi\u00eancia deles com o Kubernetes (ou K8s, se voc\u00ea for legal). Mas o Operador Aut\u00f4nomo do Couchbase \u00e9 uma ferramenta complexa: Ele orquestra opera\u00e7\u00f5es que normalmente seriam realizadas por uma equipe de engenheiros qualificados que gerenciam constantemente o cluster do Couchbase 24 horas por dia. Isso ajuda a agir com cuidado.<\/p>\n<p>Nesse caso, \u00e9 importante que voc\u00ea tenha uma compreens\u00e3o b\u00e1sica do Kubernetes e do CAO. A partir da\u00ed, voc\u00ea criar\u00e1 uma Prova de Conceito bem-sucedida. Sem esse conhecimento b\u00e1sico, ser\u00e1 dif\u00edcil - ou imposs\u00edvel - solucionar problemas de sua nova PoC. <\/p>\n<p>Esta postagem do blog explica como implantar rapidamente um Couchbase Autonomous Operator e um cluster do Couchbase. <\/p>\n<h2>Antes de mergulharmos<\/h2>\n<p>Esta postagem do blog se concentra no CAO e pressup\u00f5e um certo n\u00edvel de conhecimento do Kubernetes. Se voc\u00ea \u00e9 novo ou est\u00e1 enferrujado, <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/overview\/what-is-kubernetes\/\" rel=\"noopener\" target=\"_blank\">Aqui est\u00e1 uma r\u00e1pida atualiza\u00e7\u00e3o sobre o Kubernetes<\/a>. <\/p>\n<p>Devido ao vasto e complexo ecossistema que \u00e9 o Kubernetes, para fins deste artigo, vamos facilitar ao m\u00e1ximo a execu\u00e7\u00e3o de um cluster. O CAO \u00e9 agn\u00f3stico em rela\u00e7\u00e3o \u00e0 nuvem e, portanto, \u00e9 executado em v\u00e1rios ambientes de nuvem, seja no seu pr\u00f3prio cluster do Kubernetes ou em um servi\u00e7o do Kubernetes do seu provedor de nuvem p\u00fablica. <\/p>\n<p>Nesta postagem do blog, usaremos <a href=\"https:\/\/kind.sigs.k8s.io\/docs\/user\/quick-start\/\" rel=\"noopener\" target=\"_blank\">Kubernetes no Docker, tamb\u00e9m conhecido como \"tipo\"<\/a>para executar n\u00f3s do Kubernetes como cont\u00eaineres locais, portanto, voc\u00ea precisar\u00e1 ter o Docker instalado e em execu\u00e7\u00e3o. <\/p>\n<p>Estamos usando o tipo por v\u00e1rios motivos:<\/p>\n<ul>\n<ul>\n<li>A instala\u00e7\u00e3o \u00e9 r\u00e1pida e f\u00e1cil<\/li>\n<li>H\u00e1 uma imagem padr\u00e3o a ser usada para cada vers\u00e3o do Kubernetes<\/li>\n<li>Podemos colocar um ambiente em funcionamento o mais r\u00e1pido poss\u00edvel<\/li>\n<\/ul>\n<\/ul>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>At\u00e9 mesmo gentilmente (<em>entendeu?<\/em>) informa como interagir com o cluster do Kubernetes e como exclu\u00ed-lo quando terminar. Tudo isso \u00e9 visualizado em uma \u00fanica p\u00e1gina e \u00e9 \u00f3timo para uma variedade de casos de uso, como integra\u00e7\u00e3o e entrega\/implanta\u00e7\u00e3o cont\u00ednuas (CI\/CD) e Infraestrutura como C\u00f3digo (IaC). Para iniciantes, isso significa que voc\u00ea pode facilmente provisionar e destruir clusters. <\/p>\n<h2>Como instalar o tipo<\/h2>\n<p>Primeiro, verifique se voc\u00ea tem o Docker instalado. Em seguida, para instalar o tipo, siga estas etapas para seu sistema operacional:<\/p>\n<p>No Linux: <\/p>\n<pre class=\"lang:sh decode:true\" title=\"Instalando o kind no Linux\">\r\ncurl -Lo .\/kind https:\/\/kind.sigs.k8s.io\/dl\/v0.11.0\/kind-linux-amd64\r\nchmod +x .\/kind\r\nmv .\/kind \/some-dir-in-your-PATH\/kind\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>No macOS, via Homebrew:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Instala\u00e7\u00e3o do Kind no Mac\">\r\nbrew install kind\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>No Windows:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Instala\u00e7\u00e3o do Kind no Windows\">\r\ncurl.exe -Lo kind-windows-amd64.exe https:\/\/kind.sigs.k8s.io\/dl\/v0.11.0\/kind-windows-amd64\r\nMove-Item .kind-windows-amd64.exe c:some-dir-in-your-PATHkind.exe\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<h3>Cria\u00e7\u00e3o de um cluster<\/h3>\n<p>Antes de come\u00e7ar a criar um cluster, lembre-se de que o kind utiliza o Docker para seus n\u00f3s do Kubernetes, portanto, certifique-se de que o Docker esteja em execu\u00e7\u00e3o antes de come\u00e7ar.<\/p>\n<p>Criar um cluster em esp\u00e9cie \u00e9 simples, basta executar <code>tipo create cluster<\/code> e t\u00eam uma inicializa\u00e7\u00e3o de cluster padr\u00e3o. O Kind \u00e9 muito personaliz\u00e1vel, mas neste artigo usaremos principalmente os padr\u00f5es, modificando apenas a configura\u00e7\u00e3o do n\u00f3 de trabalho.<\/p>\n<h4>O que \u00e9 YAML?<\/h4>\n<p><a href=\"https:\/\/yaml.org\/\" rel=\"noopener\" target=\"_blank\">YAML<\/a> \u00e9 uma linguagem de marca\u00e7\u00e3o comumente usada em arquivos de configura\u00e7\u00e3o no ecossistema Kubernetes. <\/p>\n<p>Se voc\u00ea ainda n\u00e3o conhece o YAML, ele tem uma sintaxe intencionalmente m\u00ednima e sua estrutura b\u00e1sica \u00e9 um mapa. O YAML depende de sua indenta\u00e7\u00e3o para indicar aninhamento. Como no Python, o formato dessa indenta\u00e7\u00e3o \u00e9 muito importante, portanto <em>certifique-se de que seu editor use espa\u00e7os em vez de tabula\u00e7\u00f5es<\/em>.<\/p>\n<h4>Seu primeiro arquivo de configura\u00e7\u00e3o YAML: seu cluster gentil<\/h4>\n<p>Crie o seguinte arquivo de configura\u00e7\u00e3o, denominado <code>kind-config.yaml<\/code>que usaremos ao criar nosso tipo de cluster:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Arquivo de configura\u00e7\u00e3o do cluster gentil\">\r\nkind: Cluster\r\napiVersion: kind.x-k8s.io\/v1alpha4\r\n# One control plane node and three \"workers\".\r\n#\r\n# While these will not add more real compute capacity and\r\n# have limited isolation, this can be useful for testing\r\n# rolling updates etc.\r\n#\r\n# The API-server and other control plane components will be\r\n# on the control-plane node.\r\n#\r\n# You probably don't need this unless you are testing Kubernetes itself.\r\nnodes:\r\n- role: control-plane\r\n- role: worker\r\n- role: worker\r\n- role: worker\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>Crie seu cluster com o seguinte comando:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Comando gentil para criar um cluster\">\r\nkind create cluster --name=couchbase --config=kind-config.yaml\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>Depois que o cluster for criado, execute o seguinte comando: <code>kubectl cluster-info --context kind-couchbase<\/code>. Voc\u00ea deve obter uma sa\u00edda semelhante \u00e0 seguinte para saber que tem um cluster do Kubernetes em execu\u00e7\u00e3o:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Status de informa\u00e7\u00f5es do cluster do Kubernetes\">\r\n% kubectl cluster-info --context kind-couchbase\r\nKubernetes control plane is running at https:\/\/127.0.0.1:57957\r\nKubeDNS is running at https:\/\/127.0.0.1:57957\/api\/v1\/namespaces\/kube-system\/services\/kube-dns:dns\/proxy\r\n\r\nTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>\"O que \u00e9 <code>kubectl<\/code>?\" Estou ouvindo voc\u00ea gritar. \u00c9 o comando usado para interagir com os clusters do Kubernetes. N\u00e3o \u00e9 algo espec\u00edfico do Couchbase ou do tipo. Voc\u00ea interage com diferentes clusters alterando o \"contexto\". <a href=\"https:\/\/kubernetes.io\/docs\/reference\/kubectl\/overview\/\" rel=\"noopener\" target=\"_blank\">Leia mais sobre o kubectl no pr\u00f3prio Kubernetes<\/a>.<\/p>\n<p>Para nos aprofundarmos nesse admir\u00e1vel mundo novo, vamos propor uma pergunta: Se nosso cluster for chamado de <code>couchbase<\/code> em esp\u00e9cie, ent\u00e3o por que estamos usando <code>base de toque gentil<\/code> com o kubectl? Isso se deve ao fato de que <code>base de toque gentil<\/code> \u00e9 o nome do contexto que usamos para interagir com o cluster.<\/p>\n<p>A execu\u00e7\u00e3o do comando a seguir mostrar\u00e1 todos os contextos que voc\u00ea configurou:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Kubernetes obt\u00e9m contextos de configura\u00e7\u00e3o\">\r\n% kubectl config get-contexts\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>Voc\u00ea deve ter um <code>*<\/code> na coluna atual ao lado da coluna <code>base de toque gentil<\/code> entrada.<\/p>\n<h2>Instala\u00e7\u00e3o do operador aut\u00f4nomo do Couchbase em seu cluster do Kubernetes<\/h2>\n<p>Agora que voc\u00ea tem um cluster do Kubernetes em execu\u00e7\u00e3o, <a href=\"https:\/\/docs.couchbase.com\/operator\/current\/install-kubernetes.html?ref=blog\" rel=\"noopener\" target=\"_blank\">\u00e9 hora de instalar o CAO<\/a>.<\/p>\n<h3>Pr\u00e9-requisitos de instala\u00e7\u00e3o<\/h3>\n<p>Execute os pr\u00e9-requisitos para fazer o download do CAO, navegue at\u00e9 o diret\u00f3rio do Download em seu terminal, descompacte-o e mova-o para a pasta.<\/p>\n<h3>Instalar as defini\u00e7\u00f5es de recursos personalizados<\/h3>\n<p>A pr\u00f3xima etapa nos documentos \u00e9 instalar as defini\u00e7\u00f5es de recursos personalizados (CRDs) do Couchbase. Vamos dar uma olhada mais de perto no que elas s\u00e3o.<\/p>\n<p>V\u00e1 em frente e d\u00ea uma olhada no arquivo crd <code>crd.yaml<\/code> em sua pasta descompactada. Voc\u00ea ver\u00e1 milhares de linhas de recursos definidos do Couchbase. O motivo pelo qual voc\u00ea precisa instal\u00e1-los \u00e9 para estender a API do Kubernetes e definir recursos espec\u00edficos do Couchbase para que ele os gerencie em seus aplicativos do Kubernetes. <\/p>\n<p>Por exemplo, voc\u00ea usaria esses recursos para validar uma configura\u00e7\u00e3o de implanta\u00e7\u00e3o do CAO. <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/extend-kubernetes\/api-extension\/custom-resources\/\" rel=\"noopener\" target=\"_blank\">Aqui est\u00e3o os documentos do Kubernetes sobre recursos personalizados<\/a>.<\/p>\n<p>Para instalar os CRDs que acompanham o operador, use o seguinte comando:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Crie sua implanta\u00e7\u00e3o do CAO\">\r\n$ kubectl create -f crd.yaml\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<h3>Instalar o operador<\/h3>\n<p>O operador consiste em dois componentes. Quero dar uma vis\u00e3o geral para que voc\u00ea saiba exatamente o que est\u00e1 instalando e por qu\u00ea.<\/p>\n<h4>O controlador de admiss\u00e3o din\u00e2mica (DAC)<\/h4>\n<p>Como estamos usando recursos personalizados, o Kubernetes n\u00e3o tem ideia de quais valores s\u00e3o aceit\u00e1veis, ao contr\u00e1rio dos tipos de recursos nativos. <\/p>\n<p>O DAC (Dynamic Admission Controller, controlador de admiss\u00e3o din\u00e2mica) \u00e9 um gatekeeper que verifica a validade dos recursos e aplica os padr\u00f5es necess\u00e1rios antes de ser comprometido com <code>etcd<\/code> (<a href=\"https:\/\/kubernetes.io\/docs\/concepts\/overview\/components\/#etcd\" rel=\"noopener\" target=\"_blank\">um armazenamento de valores-chave para seus dados de cluster<\/a>.)<\/p>\n<p>A equipe do Couchbase Docs fez um trabalho fant\u00e1stico ao explicar <a href=\"https:\/\/docs.couchbase.com\/operator\/current\/concept-operator.html#dynamic-admission-controller-architecture\" rel=\"noopener\" target=\"_blank\">os muitos benef\u00edcios de usar o Dynamic Admission Controller aqui<\/a>.<\/p>\n<p>Aqui est\u00e1 um trecho da documenta\u00e7\u00e3o do Couchbase com um gr\u00e1fico sobre como o DAC interroga as solicita\u00e7\u00f5es:<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11370\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/06\/admission.png\" alt=\"Couchbase  Dynamic Admission Controller architecture diagram\" width=\"521\" height=\"201\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/admission.png 521w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/admission-300x116.png 300w\" sizes=\"auto, (max-width: 521px) 100vw, 521px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<ol>\n<li>Um cliente se conecta \u00e0 API do Kubernetes e envia uma solicita\u00e7\u00e3o para criar um recurso. A especifica\u00e7\u00e3o do recurso \u00e9 codificada como JSON.<\/li>\n<li>A API encaminha o JSON para o endpoint de muta\u00e7\u00e3o do Dynamic Admission Controller. Um webhook de muta\u00e7\u00e3o \u00e9 respons\u00e1vel por alterar o recurso (aplicando valores padr\u00e3o, por exemplo). Opcionalmente, ele pode optar por aceitar ou rejeitar a solicita\u00e7\u00e3o de cria\u00e7\u00e3o.<\/li>\n<li>A API encaminha o JSON para o ponto de extremidade de valida\u00e7\u00e3o do Dynamic Admission Controller. Um webhook de valida\u00e7\u00e3o \u00e9 respons\u00e1vel por validar as restri\u00e7\u00f5es de especifica\u00e7\u00e3o acima e al\u00e9m daquelas oferecidas pela valida\u00e7\u00e3o do esquema JSON fornecida pela defini\u00e7\u00e3o do recurso personalizado. Opcionalmente, ele pode optar por aceitar ou rejeitar a solicita\u00e7\u00e3o de cria\u00e7\u00e3o.<\/li>\n<li>Depois que todas as verifica\u00e7\u00f5es de admiss\u00e3o forem aprovadas, o recurso ser\u00e1 mantido no banco de dados (<code>etcd<\/code>).<\/li>\n<li>A API responde ao cliente que a solicita\u00e7\u00e3o de cria\u00e7\u00e3o foi aceita.<\/li>\n<\/ol>\n<p>Se qualquer uma das verifica\u00e7\u00f5es de admiss\u00e3o nos est\u00e1gios 2 e 3 responder que o recurso n\u00e3o \u00e9 aceit\u00e1vel, a API ir\u00e1 diretamente para o est\u00e1gio 5 e retornar\u00e1 todos os erros retornados pelo DAC.<\/p>\n<p>Instale o Dynamic Admission Controller com o seguinte comando:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Comando para instalar o Dynamic Admission Controller\">\r\n$ bin\/cbopcfg create admission\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<h4>O operador<\/h4>\n<p>Vou citar novamente a documenta\u00e7\u00e3o do Couchbase, j\u00e1 que n\u00e3o consigo me expressar melhor:<\/p>\n<p><em>Durante a vida \u00fatil do cluster do Couchbase, o Operador compara continuamente o estado dos recursos do Kubernetes com o que \u00e9 solicitado no <code>CouchbaseCluster<\/code> recurso, conciliando conforme necess\u00e1rio para que a realidade corresponda ao que foi solicitado.<\/em><\/p>\n<p>Vamos examinar isso mais detalhadamente. O Operator permite que voc\u00ea declare o estado do cluster que deseja, e ele cuidar\u00e1 do resto. Quando o estado do cluster precisar ser alterado, por exemplo, adicionar n\u00f3s do Couchbase, expandir os servi\u00e7os dispon\u00edveis etc., voc\u00ea pode simplesmente declarar isso e o Operator alcan\u00e7ar\u00e1 esse novo estado.<\/p>\n<p>Essas s\u00e3o opera\u00e7\u00f5es complexas que exigem precis\u00e3o e conhecimento para gerenciar todas as partes m\u00f3veis. O senhor <em>poderia<\/em> executam todas essas tarefas manualmente, mas o Operator automatiza tudo isso e executa todas as opera\u00e7\u00f5es com as pr\u00e1ticas recomendadas do Couchbase em mente.<\/p>\n<p>Para concluir esta se\u00e7\u00e3o, agora voc\u00ea sabe um pouco mais sobre o que comp\u00f5e uma implanta\u00e7\u00e3o do CAO, em vez de apenas instalar os componentes \u00e0s cegas. Esse \u00e9 o conhecimento de que voc\u00ea precisar\u00e1 quando estiver executando um cluster do Couchbase em v\u00e1rias nuvens usando o CAO daqui a alguns meses.<\/p>\n<p>Agora que voc\u00ea sabe o que est\u00e1 instalando, use o seguinte comando para instalar o operador:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Comando para instalar o Operador Aut\u00f4nomo do Couchbase\">\r\n$ bin\/cbopcfg create operator\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<h3>Verifica\u00e7\u00e3o do DAC<\/h3>\n<p>Voc\u00ea pode verificar o status do Operador Aut\u00f4nomo do Couchbase obtendo as implanta\u00e7\u00f5es e tamb\u00e9m pode verificar especificamente o status do seu <code>CouchbaseCluster<\/code> implanta\u00e7\u00e3o por meio da execu\u00e7\u00e3o:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Comando para obter implanta\u00e7\u00f5es do Kubernetes\">\r\n$ kubectl get deployments\r\nNAME                           READY   UP-TO-DATE   AVAILABLE   AGE\r\ncouchbase-operator             1\/1     1            1           53s\r\ncouchbase-operator-admission   1\/1     1            1           93s\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>Voc\u00ea dever\u00e1 ver uma sa\u00edda semelhante \u00e0 acima. Agora voc\u00ea pode passar para a implanta\u00e7\u00e3o efetiva de um cluster do Couchbase(!).<\/p>\n<h3>M\u00e9todos alternativos de implanta\u00e7\u00e3o<\/h3>\n<p><a href=\"https:\/\/helm.sh\/\" rel=\"noopener\" target=\"_blank\">Leme<\/a> \u00e9 um gerenciador de pacotes para o Kubernetes, um pouco semelhante ao brew\/apt, etc. <\/p>\n<p>De acordo com Matt Faina, um dos cofundadores do Helm, um gerenciador de pacotes \u00e9:<\/p>\n<p><em>\"Ferramentas que permitem que algu\u00e9m que tenha conhecimento de um aplicativo e de uma plataforma empacote um aplicativo para que outra pessoa que n\u00e3o tenha amplo conhecimento da plataforma ou da maneira como ele precisa ser executado na plataforma possa us\u00e1-lo.\"<\/em><\/p>\n<p>Os pacotes no Helm s\u00e3o chamados de <em>gr\u00e1ficos<\/em>. Eles s\u00e3o unidades implant\u00e1veis para aplicativos vinculados ao Kubernetes.<\/p>\n<p>Voc\u00ea pode <a href=\"https:\/\/docs.couchbase.com\/operator\/current\/helm-setup-guide.html?ref=blog\" rel=\"noopener\" target=\"_blank\">use o Helm para configurar facilmente o Operador Aut\u00f4nomo do Couchbase e implantar clusters do Couchbase seguindo esta documenta\u00e7\u00e3o<\/a>. Por padr\u00e3o, o gr\u00e1fico oficial do Couchbase Helm implementa o Operador Aut\u00f4nomo do Couchbase, o Controlador de Admiss\u00e3o Din\u00e2mica e um cluster do Couchbase totalmente configurado.<\/p>\n<h2>Implanta\u00e7\u00e3o do cluster do Couchbase no CAO<\/h2>\n<p>Usarei a documenta\u00e7\u00e3o em <a href=\"https:\/\/docs.couchbase.com\/operator\/current\/howto-couchbase-create.html?ref=blog\" rel=\"noopener\" target=\"_blank\">Como criar uma implanta\u00e7\u00e3o do Couchbase<\/a> como a fonte da verdade para esta se\u00e7\u00e3o, mas vou detalh\u00e1-la passo a passo.<\/p>\n<p>Os clusters do Couchbase s\u00e3o definidos em rela\u00e7\u00e3o ao Operator, conforme discutido acima, e essa defini\u00e7\u00e3o \u00e9 usada para verificar o status atual do <code>CouchbaseCluster<\/code> recurso. <\/p>\n<p>Essa defini\u00e7\u00e3o de YAML \u00e9 derivada dos documentos, mas fiz algumas altera\u00e7\u00f5es para que as coisas sejam um pouco mais f\u00e1ceis em seus n\u00f3s gentis. (O excesso de cont\u00eaineres em um laptop leva \u00e0 Badness\u2122.) Observe que as altera\u00e7\u00f5es incluem apenas a implanta\u00e7\u00e3o do servi\u00e7o de dados, mas ainda mantendo a contagem de n\u00f3s em tr\u00eas para fornecer alta disponibilidade e desempenho, e alterando o nome para <code>servi\u00e7o_de_dados<\/code> para evitar o apodrecimento do c\u00f3digo. <\/p>\n<p>Crie um arquivo chamado <code>data_cluster.yaml<\/code> e copie esse texto para ele:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Defini\u00e7\u00e3o YAML para nosso cluster do Couchbase\">\r\napiVersion: v1\r\nkind: Secret\r\nmetadata:\r\n  name: cb-example-auth\r\ntype: Opaque\r\ndata:\r\n  username: QWRtaW5pc3RyYXRvcg==  # Administrator\r\n  password: cGFzc3dvcmQ=          # password\r\n---\r\napiVersion: couchbase.com\/v2\r\nkind: CouchbaseBucket\r\nmetadata:\r\n  name: default  \r\nspec:\r\n  memoryQuota: 128Mi\r\n---\r\napiVersion: couchbase.com\/v2\r\nkind: CouchbaseCluster\r\nmetadata:\r\n  name: cb-example  \r\nspec:\r\n  image: couchbase\/server:6.6.2  \r\n  security:\r\n    adminSecret: cb-example-auth\r\n  networking:\r\n    exposeAdminConsole: true\r\n    adminConsoleServices:\r\n    - data\r\n  buckets:\r\n    managed: true\r\n  servers:\r\n  - size: 3  \r\n    name: data_service\r\n    services:\r\n    - data\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>Implemente a configura\u00e7\u00e3o usando o seguinte comando:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"comando kubectl para criar o cluster do Couchbase com base no arquivo de configura\u00e7\u00e3o YAML\">\r\n$ kubectl create -f data_cluster.yaml\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>Voc\u00ea pode observar como o operador cria pods e provisiona o cluster de acordo com a sua especifica\u00e7\u00e3o executando o seguinte logo ap\u00f3s criar a implanta\u00e7\u00e3o (acima). Isso mostrar\u00e1 o operador criando pods:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Kubernetes - comando kubectl para obter pods\">\r\n$ kubectl get pods\r\nNAME                                            READY   STATUS              RESTARTS   AGE\r\ncb-example-0000                                 0\/1     ContainerCreating   0          32s\r\ncouchbase-operator-7df6c5fc4c-xjmlb             1\/1     Running             0          9m26s\r\ncouchbase-operator-admission-7776986946-p94xr   1\/1     Running             0          10m\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>Observe que o pod <code>cb-example-0000<\/code> n\u00e3o est\u00e1 marcado como pronto (<code>0\/1<\/code>) e tem o status <code>ContainerCreating (Cria\u00e7\u00e3o de cont\u00eaineres)<\/code>. Depois que a implanta\u00e7\u00e3o for realizada, certifique-se de verific\u00e1-la.<\/p>\n<p>Continue correndo <code>kubectl get pods<\/code> at\u00e9 que voc\u00ea veja tr\u00eas <code>cb-example-****<\/code> com seu status como <code>Em execu\u00e7\u00e3o<\/code> e <code>1\/1<\/code> sob o <code>Pronto<\/code> coluna. <strong>N\u00e3o avance at\u00e9 que esse estado seja satisfeito.<\/strong> Esse \u00e9 o estado que voc\u00ea definiu em seu <code>data_cluster.yaml<\/code>.<\/p>\n<p>Use o comando a seguir para verificar se o servi\u00e7o de dados est\u00e1 dispon\u00edvel em seu cluster: <\/p>\n<pre class=\"lang:sh decode:true\" title=\"Kubernetes - comando kubectl para obter pods que executam o servi\u00e7o de dados\">\r\n$ kubectl get pods -l couchbase_cluster=cb-example,couchbase_service_data=enabled\r\nNAME              READY   STATUS    RESTARTS   AGE\r\ncb-example-0000   1\/1     Running   0          73m\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>Observe que voc\u00ea deve receber um resultado semelhante ao do exemplo acima, mas, dependendo da implanta\u00e7\u00e3o do cluster, os resultados ser\u00e3o diferentes.<\/p>\n<h2>Encaminhamento de porta e acesso \u00e0 GUI do Couchbase<\/h2>\n<p>Para acessar outros servi\u00e7os do Couchbase para sua PoC, voc\u00ea precisar\u00e1 acessar a GUI do Couchbase. <\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/operator\/current\/howto-ui.html?ref=blog\" rel=\"noopener\" target=\"_blank\">Este guia explica como configurar o encaminhamento de porta<\/a>. O encaminhamento de portas \u00e9 \u00fatil, pois voc\u00ea precisar\u00e1 acessar a GUI do Couchbase na sua Prova de Conceito. Ele tamb\u00e9m pode ser \u00fatil quando voc\u00ea precisar usar o <code>cbc-pillowfight<\/code> para testes de carga ou <code>cbimport<\/code> por colocar alguns documentos de amostra no cluster.<\/p>\n<p>O uso da sa\u00edda do comando anterior fornece um pod que est\u00e1 executando o servi\u00e7o de dados. Esse nome de pod pode ser usado para encaminhar a porta para a GUI do Couchbase. <\/p>\n<p>Execute o seguinte comando:<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Kubernetes - comando kubectl para encaminhar a porta 8091 de um pod espec\u00edfico\">\r\n$ kubectl port-forward cb-example-0000 8091\r\nForwarding from 127.0.0.1:8091 -&gt; 8091\r\nForwarding from [::1]:8091 -&gt; 8091\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>Esse comando deve lhe fornecer uma sa\u00edda semelhante \u00e0 listada acima. Depois de executar o comando, voc\u00ea pode acessar a GUI do Couchbase por meio de <a href=\"https:\/\/\/blog\/pt\/localhost:8091\/\" rel=\"noopener\" target=\"_blank\">http:localhost:8091<\/a>.<\/p>\n<h2>Modifica\u00e7\u00e3o da implanta\u00e7\u00e3o do Couchbase<\/h2>\n<p>Uma coisa que voc\u00ea definitivamente vai querer incluir em sua PoC \u00e9 a capacidade de <a href=\"https:\/\/docs.couchbase.com\/operator\/current\/howto-couchbase-update.html?ref=blog\" rel=\"noopener\" target=\"_blank\">modificar seu cluster do Couchbase por meio do arquivo YAML<\/a>. Isso lhe d\u00e1 a flexibilidade para moldar e dimensionar seu cluster. <\/p>\n<p>Observe que voc\u00ea n\u00e3o est\u00e1 usando <code>kubectl create<\/code> N\u00e3o mais. Substitua a defini\u00e7\u00e3o anterior por uma nova usando <code>kubectl apply<\/code> ou <code>kubectl replace<\/code>.<\/p>\n<p>Um teste a ser executado seria adicionar outro servi\u00e7o do Couchbase ao seu cluster atual. Como estou usando apenas meu laptop, adicionarei apenas um servi\u00e7o adicional: eventing.<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Configura\u00e7\u00e3o YAML do cluster do Couchbase - adi\u00e7\u00e3o de um novo servi\u00e7o de eventos ao cluster\">\r\napiVersion: v1\r\nkind: Secret\r\nmetadata:\r\n  name: cb-example-auth\r\ntype: Opaque\r\ndata:\r\n  username: QWRtaW5pc3RyYXRvcg==  # Administrator\r\n  password: cGFzc3dvcmQ=          # password\r\n---\r\napiVersion: couchbase.com\/v2\r\nkind: CouchbaseBucket\r\nmetadata:\r\n  name: default  \r\nspec:\r\n  memoryQuota: 128Mi\r\n---\r\napiVersion: couchbase.com\/v2\r\nkind: CouchbaseCluster\r\nmetadata:\r\n  name: cb-example  \r\nspec:\r\n  image: couchbase\/server:6.6.2  \r\n  security:\r\n    adminSecret: cb-example-auth\r\n  networking:\r\n    exposeAdminConsole: true\r\n    adminConsoleServices:\r\n    - data\r\n  buckets:\r\n    managed: true\r\n  servers:\r\n  - size: 3  \r\n    name: data_eventing_service\r\n    services:\r\n    - data\r\n    - eventing\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>Depois de fazer a altera\u00e7\u00e3o, voc\u00ea pode implementar sua configura\u00e7\u00e3o no operador: <code>kubectl apply -f<\/code>. Verifique se o novo servi\u00e7o foi adicionado usando o comando verbose <code>obter c\u00e1psulas<\/code> listagem. Por fim, siga as etapas para encaminhar a porta para a GUI novamente e verifique se o novo servi\u00e7o est\u00e1 inclu\u00eddo no cluster.<\/p>\n<p>Neste ponto, \u00e9 importante observar que a adi\u00e7\u00e3o incremental de recursos a um operador <code>configura\u00e7\u00e3o<\/code> \u00e9, de certa forma, uma pr\u00e1tica recomendada. Com a adi\u00e7\u00e3o iterativa de recursos e configura\u00e7\u00f5es \u00e0 sua implementa\u00e7\u00e3o, voc\u00ea pode testar o cluster em cada est\u00e1gio, confirmando que sua configura\u00e7\u00e3o \u00e9 v\u00e1lida.<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Para concluir, neste artigo voc\u00ea aprendeu mais sobre a composi\u00e7\u00e3o do Operador Aut\u00f4nomo do Couchbase e como pode orquestr\u00e1-lo para provisionar um cluster do Couchbase, especialmente para um projeto de Prova de Conceito (PoC).<\/p>\n<p>O CAO verifica consistentemente o estado do seu cluster do Couchbase, garantindo que ele atenda \u00e0 sua especifica\u00e7\u00e3o definida. Al\u00e9m disso, voc\u00ea pode implantar a especifica\u00e7\u00e3o do CAO em qualquer ambiente Kubernetes. Isso lhe d\u00e1 um n\u00edvel fant\u00e1stico de liberdade e elimina a depend\u00eancia de fornecedores de nuvem p\u00fablica. Voc\u00ea pode confiar no Operator para manter a integridade do cluster de acordo com a sua especifica\u00e7\u00e3o e, quando precisar executar fun\u00e7\u00f5es como upgrades de cluster, poder\u00e1 faz\u00ea-lo facilmente por meio do arquivo YAML.<\/p>\n<p>No futuro, publicarei mais publica\u00e7\u00f5es no blog que explicar\u00e3o como implantar ainda mais casos de uso do Couchbase Autonomous Operator. Se voc\u00ea n\u00e3o puder esperar at\u00e9 l\u00e1, <a href=\"https:\/\/docs.couchbase.com\/operator\/current\/overview.html?ref=blog\" rel=\"noopener\" target=\"_blank\">analisar a documenta\u00e7\u00e3o do CAO para come\u00e7ar a explorar<\/a>. Mal posso esperar para ouvir o que voc\u00ea construiu.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"> <\/div>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Whenever I hear about a customer&#8217;s first experience with the Couchbase Autonomous Operator (CAO) for Kubernetes, their first question tends to be \u201cHow much?\u201d The answer is that it&#8217;s already included in their Enterprise Edition subscription. Joyous to hear this, [&hellip;]<\/p>","protected":false},"author":76077,"featured_media":11492,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,9284,6319,2273,2322],"tags":[1519,2365,1261,9247,1545,2128],"ppma_author":[9168],"class_list":["post-11365","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-autonomous-operator","category-customers","category-eventing","category-kubernetes","tag-docker","tag-helm","tag-json","tag-key-value-store","tag-kubernetes","tag-proof-of-concept"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Build a Couchbase Autonomous Operator Proof of Concept<\/title>\n<meta name=\"description\" content=\"Discover how to quickly build a Proof of Concept (PoC) environment for the Couchbase Autonomous Operator for Kubernetes in this walkthrough developer guide.\" \/>\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\/couchbase-autonomous-operator-proof-of-concept-guide\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Build a Couchbase Autonomous Operator Proof of Concept\" \/>\n<meta property=\"og:description\" content=\"Discover how to quickly build a Proof of Concept (PoC) environment for the Couchbase Autonomous Operator for Kubernetes in this walkthrough developer guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-autonomous-operator-proof-of-concept-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-05T10:47:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T05:39:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/Couchbase-Autonomous-Operator-cao-Proof-of-Concept-guide.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sam Redman, Solutions Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sam Redman, Solutions Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/\"},\"author\":{\"name\":\"Sam Redman\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/512e4ed8ed1188a93cb7c3aee277f408\"},\"headline\":\"How to Build a Couchbase Autonomous Operator Proof of Concept\",\"datePublished\":\"2021-07-05T10:47:22+00:00\",\"dateModified\":\"2025-06-14T05:39:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/\"},\"wordCount\":2465,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/Couchbase-Autonomous-Operator-cao-Proof-of-Concept-guide.jpg\",\"keywords\":[\"docker\",\"helm\",\"JSON\",\"key-value store\",\"kubernetes\",\"proof of concept\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Autonomous Operator\",\"Customers\",\"Eventing\",\"Kubernetes\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/\",\"name\":\"How to Build a Couchbase Autonomous Operator Proof of Concept\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/Couchbase-Autonomous-Operator-cao-Proof-of-Concept-guide.jpg\",\"datePublished\":\"2021-07-05T10:47:22+00:00\",\"dateModified\":\"2025-06-14T05:39:23+00:00\",\"description\":\"Discover how to quickly build a Proof of Concept (PoC) environment for the Couchbase Autonomous Operator for Kubernetes in this walkthrough developer guide.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/Couchbase-Autonomous-Operator-cao-Proof-of-Concept-guide.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/Couchbase-Autonomous-Operator-cao-Proof-of-Concept-guide.jpg\",\"width\":1200,\"height\":628,\"caption\":\"Learn how to easily build a PoC Kubernetes environment to test out the Couchbase Autonomous Operator\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Build a Couchbase Autonomous Operator Proof of Concept\"}]},{\"@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\/512e4ed8ed1188a93cb7c3aee277f408\",\"name\":\"Sam Redman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/69dc9b1e46ceb237d29e1e4b626c6bcc\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g\",\"caption\":\"Sam Redman\"},\"description\":\"Solutions Engineer at Couchbase. Sam has previously as a developer and an SRE before joining Couchbase.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/sam-redman\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Como criar uma prova de conceito de operador aut\u00f4nomo do Couchbase","description":"Descubra como criar rapidamente um ambiente de Prova de Conceito (PoC) para o Operador Aut\u00f4nomo do Couchbase para Kubernetes neste guia passo a passo para desenvolvedores.","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\/couchbase-autonomous-operator-proof-of-concept-guide\/","og_locale":"pt_BR","og_type":"article","og_title":"How to Build a Couchbase Autonomous Operator Proof of Concept","og_description":"Discover how to quickly build a Proof of Concept (PoC) environment for the Couchbase Autonomous Operator for Kubernetes in this walkthrough developer guide.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-autonomous-operator-proof-of-concept-guide\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-07-05T10:47:22+00:00","article_modified_time":"2025-06-14T05:39:23+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/Couchbase-Autonomous-Operator-cao-Proof-of-Concept-guide.jpg","type":"image\/jpeg"}],"author":"Sam Redman, Solutions Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Sam Redman, Solutions Engineer","Est. reading time":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/"},"author":{"name":"Sam Redman","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/512e4ed8ed1188a93cb7c3aee277f408"},"headline":"How to Build a Couchbase Autonomous Operator Proof of Concept","datePublished":"2021-07-05T10:47:22+00:00","dateModified":"2025-06-14T05:39:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/"},"wordCount":2465,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/Couchbase-Autonomous-Operator-cao-Proof-of-Concept-guide.jpg","keywords":["docker","helm","JSON","key-value store","kubernetes","proof of concept"],"articleSection":["Best Practices and Tutorials","Couchbase Autonomous Operator","Customers","Eventing","Kubernetes"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/","name":"Como criar uma prova de conceito de operador aut\u00f4nomo do Couchbase","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/Couchbase-Autonomous-Operator-cao-Proof-of-Concept-guide.jpg","datePublished":"2021-07-05T10:47:22+00:00","dateModified":"2025-06-14T05:39:23+00:00","description":"Descubra como criar rapidamente um ambiente de Prova de Conceito (PoC) para o Operador Aut\u00f4nomo do Couchbase para Kubernetes neste guia passo a passo para desenvolvedores.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/Couchbase-Autonomous-Operator-cao-Proof-of-Concept-guide.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/Couchbase-Autonomous-Operator-cao-Proof-of-Concept-guide.jpg","width":1200,"height":628,"caption":"Learn how to easily build a PoC Kubernetes environment to test out the Couchbase Autonomous Operator"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-autonomous-operator-proof-of-concept-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Build a Couchbase Autonomous Operator Proof of Concept"}]},{"@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\/512e4ed8ed1188a93cb7c3aee277f408","name":"Sam Redman","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/69dc9b1e46ceb237d29e1e4b626c6bcc","url":"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g","caption":"Sam Redman"},"description":"Engenheiro de solu\u00e7\u00f5es da Couchbase. Sam j\u00e1 trabalhou como desenvolvedor e SRE antes de ingressar na Couchbase.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/sam-redman\/"}]}},"authors":[{"term_id":9168,"user_id":76077,"is_guest":0,"slug":"sam-redman","display_name":"Sam Redman, Solutions Engineer","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g","author_category":"","last_name":"Redman","first_name":"Sam","job_title":"","user_url":"","description":"Sam Redman \u00e9 engenheiro de solu\u00e7\u00f5es na Couchbase. Sam trabalhou anteriormente em ambientes de desenvolvimento e SRE antes de ingressar na Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/11365","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\/76077"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=11365"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/11365\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/11492"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=11365"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=11365"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=11365"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=11365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}