{"id":6804,"date":"2019-05-07T10:54:05","date_gmt":"2019-05-07T17:54:05","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=6804"},"modified":"2025-06-13T21:33:45","modified_gmt":"2025-06-14T04:33:45","slug":"autonomous-operator-1-2-0-networking","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/autonomous-operator-1-2-0-networking\/","title":{"rendered":"Preenchendo lacunas: Operador Aut\u00f4nomo 1.2 Aprimoramentos de rede"},"content":{"rendered":"<p>As vers\u00f5es do Operador Aut\u00f4nomo anteriores \u00e0 1.2.0 tinham capacidade limitada de interagir com os clientes.  A plataforma de dados do Couchbase s\u00f3 podia ser usada por SDKs localizados no mesmo cluster do Kubernetes.  A replica\u00e7\u00e3o entre datacenters (XDCR) s\u00f3 podia ser usada no mesmo cluster do Kubernetes ou em um t\u00fanel seguro.  Uma rede privada virtual (VPN) \u00e9 um exemplo desse tipo de t\u00fanel. Al\u00e9m disso, o acesso \u00e0 interface do usu\u00e1rio (UI) teria que ser feito com o encaminhamento de porta do Kubernetes.<\/p>\n<p>A vers\u00e3o 1.2.0 do Operador Aut\u00f4nomo apresenta novos recursos de rede para atender a esses limites.  O objetivo final \u00e9 ampliar nosso p\u00fablico com suporte para arquiteturas de rede mais diversas. Seu aplicativo pode ser executado como uma fun\u00e7\u00e3o sem servidor e, portanto, precisa se comunicar pela Internet com o servidor Couchbase.  Esse tipo de caso de uso \u00e9 exatamente o que estamos apoiando.<\/p>\n<h3>Arquitetura de rede do Kubernetes<\/h3>\n<p>As op\u00e7\u00f5es dispon\u00edveis para a rede do Kubernetes s\u00e3o diversas.  A interface \u00e9 tudo o que \u00e9 fornecido pelo Kubernetes, o que significa que terceiros fornecem sua pr\u00f3pria implementa\u00e7\u00e3o.  O resultado \u00e9 que cada solu\u00e7\u00e3o tem seus pontos fortes e fracos. As escolhas de rede que fazemos devem funcionar em todos os provedores, portanto, descreveremos os tipos de rede comuns antes de analisar as solu\u00e7\u00f5es.<\/p>\n<h3>Redes roteadas<\/h3>\n<p>As redes roteadas s\u00e3o as mais simples de descrever em termos de Kubernetes.  Os hosts podem se comunicar uns com os outros porque s\u00e3o executados na mesma sub-rede e podem endere\u00e7ar diretamente o endere\u00e7o de hardware de destino.  Isso \u00e9 conhecido como <a href=\"https:\/\/en.wikipedia.org\/wiki\/Data_link_layer\">camada 2<\/a> rede.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6805 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/05\/image1.png\" alt=\"Layer 2 networking\" width=\"701\" height=\"346\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image1.png 701w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image1-300x148.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image1-20x10.png 20w\" sizes=\"auto, (max-width: 701px) 100vw, 701px\" \/><\/p>\n<p>Os pods geralmente s\u00e3o executados em uma sub-rede separada dos hosts em que s\u00e3o executados.  Essa sub-rede \u00e9 subdividida ainda mais entre cada host.<\/p>\n<p>Uma mensagem de um pod em um host n\u00e3o tem como saber como encontrar seu pod de destino em outro host porque ele n\u00e3o existe na mesma sub-rede. As mensagens de uma sub-rede podem ser movidas de uma sub-rede para outra por meio de um roteador.  Normalmente, as mensagens de um host s\u00e3o enviadas a um roteador em uma sub-rede quando o endere\u00e7o de destino n\u00e3o est\u00e1 em uma sub-rede conectada diretamente.<\/p>\n<h3>Roteamento<\/h3>\n<p>Os roteadores tratam as mensagens de duas maneiras. Para sub-redes conectadas diretamente, as mensagens podem ser enviadas apenas para a porta de rede correta e a rede de camada 2 cuida do resto.  Para sub-redes n\u00e3o conectadas diretamente, as mensagens podem ser encaminhadas a outro roteador que tenha a sub-rede conectada diretamente. Isso \u00e9 conhecido como <a href=\"https:\/\/en.wikipedia.org\/wiki\/Network_layer\">camada 3<\/a> rede.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6806 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/05\/image3.png\" alt=\"Layer 3 networking\" width=\"845\" height=\"435\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image3.png 845w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image3-300x154.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image3-768x395.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image3-20x10.png 20w\" sizes=\"auto, (max-width: 845px) 100vw, 845px\" \/><\/p>\n<p>O roteador gerencia essas informa\u00e7\u00f5es de roteamento em uma tabela de roteamento.  Uma tabela de roteamento \u00e9 simplesmente uma lista de mapeamentos de uma sub-rede para uma interface f\u00edsica ou outro roteador em uma rede diretamente conectada.<\/p>\n<p>Uma mensagem para outro pod seria capturada pelo host em que o pod est\u00e1 sendo executado.  O endere\u00e7o de destino da mensagem seria desconhecido e, portanto, encaminhado ao roteador. O roteador sabe sobre o endere\u00e7o de destino em sua tabela de roteamento, portanto, encaminha a mensagem para o host correto.  Por fim, a mensagem \u00e9 enviada para o pod de destino. As mensagens de fora do cluster do Kubernetes podem chegar ao pod de destino simplesmente sendo enviadas ao roteador.<\/p>\n<p>As redes roteadas s\u00e3o muito simples.  Elas tamb\u00e9m podem sofrer uma pequena penalidade de desempenho devido ao salto para o roteador e depois para o host de destino.  Existem solu\u00e7\u00f5es mais inteligentes que usam <a href=\"https:\/\/en.wikipedia.org\/wiki\/Border_Gateway_Protocol\">iBGP<\/a> e <a href=\"https:\/\/en.wikipedia.org\/wiki\/Route_reflector\">refletores de rota<\/a> para remover esse salto extra.  O isolamento de pods uns dos outros deve ser feito com regras de firewall.<\/p>\n<h3>Redes de sobreposi\u00e7\u00e3o<\/h3>\n<p>As redes de sobreposi\u00e7\u00e3o encapsulam mensagens de pod para pod em protocolos como <a href=\"https:\/\/en.wikipedia.org\/wiki\/Generic_Routing_Encapsulation\">GRE<\/a> ou <a href=\"https:\/\/en.wikipedia.org\/wiki\/Virtual_Extensible_LAN\">VXLAN<\/a>.  Cada host anuncia sua sub-rede de pod.  Os hosts podem ent\u00e3o assinar esses an\u00fancios e saber para qual host devem enviar a mensagem diretamente para chegar ao pod de destino.  Embora seja mais r\u00e1pido do que enviar para um roteador, a sobrecarga de encapsulamento pode anular qualquer benef\u00edcio.<\/p>\n<p>O encapsulamento tamb\u00e9m permite que pods diferentes sejam associados a diferentes <a href=\"https:\/\/en.wikipedia.org\/wiki\/Virtual_LAN\">redes virtuais<\/a>.  Isso proporciona um modelo de seguran\u00e7a forte em que grupos de pods podem ser fisicamente segregados.  No entanto, isso significa que voc\u00ea ainda precisa de roteadores para cruzar entre as redes de sobreposi\u00e7\u00e3o. Esses roteadores precisar\u00e3o de suas pr\u00f3prias regras de firewall.<\/p>\n<p>O endere\u00e7amento de um pod de fora do cluster \u00e9 muito dif\u00edcil.  Com as redes roteadas, podemos simplesmente encaminhar para o roteador e ele cuidar\u00e1 do resto.  Com as sobreposi\u00e7\u00f5es, n\u00e3o temos esse mecanismo simples para fazer um t\u00fanel para a sobreposi\u00e7\u00e3o.<\/p>\n<h3>Portas de n\u00f3<\/h3>\n<p>O \u00fanico mecanismo comum para a comunica\u00e7\u00e3o externa com pods em ambos os tipos de rede s\u00e3o as portas de n\u00f3 do Kubernetes.  Para cada pod que o Operador Aut\u00f4nomo cria, tamb\u00e9m criamos um servi\u00e7o de porta de n\u00f3 para ele. Cada porta que definirmos para o servi\u00e7o ter\u00e1 uma porta aleat\u00f3ria atribu\u00edda ao host subjacente.<\/p>\n<p>As portas de n\u00f3 devem ser aleat\u00f3rias, pois dois pods podem estar expondo o mesmo n\u00famero de porta.  Isso levaria a um conflito se essa porta fosse usada como a porta do n\u00f3 por ambos os pods. Podemos endere\u00e7ar uma porta em um pod espec\u00edfico endere\u00e7ando o host subjacente e a porta do host. O host tratar\u00e1 a mensagem <a href=\"https:\/\/en.wikipedia.org\/wiki\/Network_address_translation#DNAT\">redirecionamento<\/a> para o destino correto.<\/p>\n<p>As portas de n\u00f3 nos fornecem um mecanismo gen\u00e9rico para endere\u00e7ar um pod, independentemente de estarmos usando uma rede de sobreposi\u00e7\u00e3o.  Como estamos endere\u00e7ando o n\u00f3 subjacente, a conex\u00e3o com ele de fora do Kubernetes \u00e9 simplesmente um caso de roteamento de pacotes para a rede roteada em que os n\u00f3s do Kubernetes residem.<\/p>\n<h3>Estabelecimento de XDCR<\/h3>\n<p>As portas de n\u00f3 formam a base do estabelecimento de uma conex\u00e3o XDCR entre dois clusters do Couchbase em dois clusters diferentes do Kubernetes.  Quando as portas de n\u00f3 s\u00e3o alocadas, o Operador Aut\u00f4nomo informa o servidor Couchbase. Os clientes que se conectam externamente se conectam \u00e0 porta do n\u00f3 e o servidor Couchbase responde com um mapa de endere\u00e7os IP de n\u00f3 e portas de n\u00f3 por servi\u00e7o.  O cliente XDCR usa esses mapas para acessar vBuckets individuais ao fazer streaming de documentos.<\/p>\n<p>A \u00fanica coisa que o Operador Aut\u00f4nomo n\u00e3o pode fazer \u00e9 fornecer conectividade de camada 3 entre as duas redes de host do Kubernetes.  Criar um peering (VPN) entre as duas redes, adicionar rotas e regras de firewall \u00e9 tudo o que \u00e9 necess\u00e1rio para a maioria dos provedores de nuvem.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6807 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/05\/image2.png\" alt=\"IP based XDCR across Kubernetes clusters\" width=\"651\" height=\"433\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image2.png 651w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image2-300x200.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image2-400x267.png 400w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image2-450x300.png 450w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image2-20x13.png 20w\" sizes=\"auto, (max-width: 651px) 100vw, 651px\" \/><\/p>\n<h3>Novos aprimoramentos do operador aut\u00f4nomo<\/h3>\n<p>Temos uma base s\u00f3lida, trabalhando dentro dos limites do modelo de rede do Kubernetes.  Ela \u00e9 segura, com uma VPN, mas h\u00e1 melhorias que podem ser feitas.<\/p>\n<h3>Acesso de clientes externos<\/h3>\n<p>A utiliza\u00e7\u00e3o de um t\u00fanel VPN para acessar uma rede de host Kubernetes remota pode ser imposs\u00edvel ou indesej\u00e1vel.  Isso \u00e9 especialmente verdadeiro para servi\u00e7os gerenciados, nos quais voc\u00ea pode n\u00e3o ter controle sobre a rede.<\/p>\n<p>Para resolver isso, precisamos colocar os pods na Internet.  As rotas do Openshift e os ingresses gen\u00e9ricos s\u00f3 funcionam para o tr\u00e1fego HTTP e s\u00e3o dif\u00edceis de configurar.  Em vez disso, optamos por criar servi\u00e7os de balanceador de carga por pod do servidor Couchbase. Qualquer conex\u00e3o TCP pode ser suportada e, al\u00e9m disso, como o endere\u00e7o IP do balanceador de carga \u00e9 exclusivo por pod, podemos usar os n\u00fameros de porta padr\u00e3o.  Todos os principais provedores de nuvem oferecem servi\u00e7os de balanceador de carga.<\/p>\n<p>As conex\u00f5es XDCR baseadas em porta de n\u00f3 existentes ainda s\u00e3o suportadas e s\u00e3o o padr\u00e3o.<\/p>\n<h3>Acesso externo \u00e0 interface do usu\u00e1rio<\/h3>\n<p>A interface do usu\u00e1rio, assim como os pods individuais, agora pode ser abordada publicamente com um servi\u00e7o de balanceador de carga.  Isso torna o gerenciamento das implanta\u00e7\u00f5es da plataforma de dados do Couchbase muito mais simples.<\/p>\n<h3>Criptografia de ponta a ponta<\/h3>\n<p>Colocar qualquer coisa na Internet p\u00fablica n\u00e3o \u00e9 isento de riscos.  Isso \u00e9 especialmente verdade com um banco de dados, por isso exigimos o uso de TLS.  Nenhuma porta de texto simples pode ser exposta. Isso mant\u00e9m suas credenciais de usu\u00e1rio e dados protegidos contra espi\u00f5es.<\/p>\n<p>Quando um certificado de servidor \u00e9 apresentado a um cliente conectado, ele verifica se o endere\u00e7o ao qual se conectou \u00e9 v\u00e1lido para esse certificado.  Isso \u00e9 feito com <a href=\"https:\/\/en.wikipedia.org\/wiki\/Subject_Alternative_Name\">nomes alternativos de assuntos<\/a>.  Oferecemos suporte apenas a nomes alternativos curinga baseados em DNS, e n\u00e3o em IP.  Al\u00e9m disso, n\u00e3o podemos usar o endere\u00e7amento baseado em IP dos servi\u00e7os de balanceamento de carga, pois o endere\u00e7o n\u00e3o \u00e9 est\u00e1vel durante a recupera\u00e7\u00e3o.<\/p>\n<p>Um nome v\u00e1lido para um cluster poderia ser <i>*.my-cluster.example.com<\/i>.  Esse \u00e9 um curinga, v\u00e1lido para <i>server0.my-cluster.example.com<\/i> e <i>server1.my-cluster.example.com<\/i>.  O certificado ser\u00e1 v\u00e1lido para todos os n\u00f3s que o Operador Aut\u00f4nomo criar no ciclo de vida do cluster.<\/p>\n<p>Os registros de recursos DNS precisam ser criados mapeando os nomes DNS para os endere\u00e7os IP do balanceador de carga para que fiquem vis\u00edveis para o cliente.  Os nomes de DNS necess\u00e1rios s\u00e3o anotados nos servi\u00e7os de balanceador de carga pelo operador aut\u00f4nomo. Eles s\u00e3o sincronizados com um provedor de DNS em nuvem por um terceiro <a href=\"https:\/\/github.com\/kubernetes-incubator\/external-dns\">controlador<\/a>.<\/p>\n<h3>Exemplo<\/h3>\n<p>O diagrama mostra como todos esses recursos est\u00e3o interligados.<\/p>\n<ol>\n<li>Um cliente, seja ele um SDK ou XCDR, inicializa uma conex\u00e3o usando o endere\u00e7o DNS <em>https:\/\/cb0.cb0.us-east-1.example.com:18091<\/em>.  Isso \u00e9 resolvido para o endere\u00e7o IP do balanceador de carga em <em>185.64.232.18<\/em>.  Esse endere\u00e7o DNS \u00e9 criado a partir da especifica\u00e7\u00e3o do servi\u00e7o do balanceador de carga e de seu endere\u00e7o IP p\u00fablico.<\/li>\n<li>Em seguida, o cliente abre uma conex\u00e3o TCP com o cluster do Couchbase.  Primeiro, ela atravessa a Internet at\u00e9 o roteador de borda do cliente.<\/li>\n<li>O pacote \u00e9 ent\u00e3o encaminhado para o balanceador de carga em <em>185.64.232.18<\/em>.<\/li>\n<li>Em seguida, o balanceador de carga envia o pacote para a porta do n\u00f3 correspondente \u00e0 porta <em>18091<\/em> no pod de destino.  Em seguida, o n\u00f3 faz o SNAT do pacote para a porta <em>18091<\/em> no pr\u00f3prio pod.<\/li>\n<li>Depois que a conex\u00e3o TCP \u00e9 estabelecida, o cliente inicia um handshake TLS com o servidor.  O servidor retorna seu certificado para o cliente.  O cliente valida o certificado como v\u00e1lido para o destinat\u00e1rio pretendido.  O endere\u00e7o <em>cb0.cb0.us-east-1.example.com<\/em> corresponde ao nome alternativo do assunto curinga <em>*.cb0.us-east-1.example.com<\/em>.  O bootstrap do cliente continua como de costume.<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6808 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/05\/image5.png\" alt=\"Public accessability of Couchbase clients\" width=\"1561\" height=\"1102\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5.png 1561w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5-300x212.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5-1024x723.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5-768x542.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5-1536x1084.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5-20x14.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image5-1320x932.png 1320w\" sizes=\"auto, (max-width: 1561px) 100vw, 1561px\" \/><\/p>\n<p>Embora n\u00e3o esteja inclu\u00eddo no diagrama, vale a pena mencionar que o servidor Couchbase se refere ao pod de destino como <em>cb0.cb0.default.svc<\/em>seu nome DNS interno.  Os clientes n\u00e3o conseguem resolver esse nome quando recebem um mapeamento de membros do cluster para endere\u00e7os de membros.  O Operator preenche endere\u00e7os de membros alternativos que podem ser resolvidos.<\/p>\n<p>Os clientes devem estar cientes dos endere\u00e7os alternativos.  Os SDKs compat\u00edveis est\u00e3o documentados na documenta\u00e7\u00e3o do Operador.  O XDCR \u00e9 compat\u00edvel com as vers\u00f5es 5.5.3+ e 6.0.1+ do servidor Couchbase.<\/p>\n<h3>Conclus\u00e3o<\/h3>\n<p>A capacidade de endere\u00e7ar publicamente uma inst\u00e2ncia do servidor Couchbase \u00e9 uma ferramenta poderosa.   Ela simplifica a configura\u00e7\u00e3o da rede. A configura\u00e7\u00e3o de um t\u00fanel VPN entre provedores de nuvem pode ser dif\u00edcil ou imposs\u00edvel, mas isso evita totalmente esse problema.  Simplifica o processo de acesso ao console da interface do usu\u00e1rio e tamb\u00e9m permite que os clientes, inclusive o XDCR, se conectem de qualquer lugar do mundo.<\/p>\n<p>Isso d\u00e1 origem a novas e empolgantes possibilidades de integrar suas implementa\u00e7\u00f5es do Couchbase baseadas no Kubernetes com qualquer servi\u00e7o externo.  Esses exemplos podem incluir plataformas de fun\u00e7\u00e3o como servi\u00e7o em que voc\u00ea n\u00e3o tem controle sobre a arquitetura de rede subjacente.<\/p>\n<ul>\n<li>Experimente: <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/downloads\/\">https:\/\/www.couchbase.com\/downloads<\/a><\/li>\n<li>F\u00f3runs de suporte: <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/forums\/c\/couchbase-server\/Kubernetes\/\">https:\/\/www.couchbase.com\/forums\/c\/couchbase-server\/Kubernetes<\/a><\/li>\n<li>Documenta\u00e7\u00e3o: <a href=\"https:\/\/docs.couchbase.com\/operator\/1.2\/whats-new.html\">https:\/\/docs.couchbase.com\/operator\/1.2\/whats-new.html<\/a><\/li>\n<\/ul>\n<h3>Leia mais<\/h3>\n<p>Operador aut\u00f4nomo 1.2.0 Deep Dive: <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/deep-dive-couchbase-autonomous-operator-1-2-0\/\">https:\/\/www.couchbase.com\/blog\/deep-dive-couchbase-autonomous-operator-1-2-0<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Autonomous Operator versions prior to 1.2.0 had limited ability to interact with clients. \u00a0The Couchbase data platform could only be used by SDKs located in the same Kubernetes cluster. \u00a0Cross datacenter replication (XDCR) could only be used within the same [&hellip;]<\/p>","protected":false},"author":25957,"featured_media":6809,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9284,2225,2322],"tags":[],"ppma_author":[9076],"class_list":["post-6804","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-autonomous-operator","category-cloud","category-kubernetes"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bridging Gaps: Autonomous Operator 1.2 Network Enhancements<\/title>\n<meta name=\"description\" content=\"How Kubernetes network improvements in Autonomous Operator 1.2.0 provide streamlined configuration of XDCR, and client access from the public internet.\" \/>\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\/autonomous-operator-1-2-0-networking\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements\" \/>\n<meta property=\"og:description\" content=\"How Kubernetes network improvements in Autonomous Operator 1.2.0 provide streamlined configuration of XDCR, and client access from the public internet.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/autonomous-operator-1-2-0-networking\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-07T17:54:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:33:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1999\" \/>\n\t<meta property=\"og:image:height\" content=\"786\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Simon Murray, Senior Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Simon Murray, Senior Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/\"},\"author\":{\"name\":\"Simon Murray, Senior Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8b03ed823446340bba90154b6fcd7a23\"},\"headline\":\"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements\",\"datePublished\":\"2019-05-07T17:54:05+00:00\",\"dateModified\":\"2025-06-14T04:33:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/\"},\"wordCount\":1723,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg\",\"articleSection\":[\"Couchbase Autonomous Operator\",\"Couchbase Capella\",\"Kubernetes\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/\",\"name\":\"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg\",\"datePublished\":\"2019-05-07T17:54:05+00:00\",\"dateModified\":\"2025-06-14T04:33:45+00:00\",\"description\":\"How Kubernetes network improvements in Autonomous Operator 1.2.0 provide streamlined configuration of XDCR, and client access from the public internet.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg\",\"width\":1999,\"height\":786},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements\"}]},{\"@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\/8b03ed823446340bba90154b6fcd7a23\",\"name\":\"Simon Murray, Senior Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/bf0dbf1d557d4349cd907431f40a61ac\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c5918b7fdf9c2714c0b72bd1d7366f65751da5f40cbcfdede50d123f4c40c893?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c5918b7fdf9c2714c0b72bd1d7366f65751da5f40cbcfdede50d123f4c40c893?s=96&d=mm&r=g\",\"caption\":\"Simon Murray, Senior Software Engineer, Couchbase\"},\"description\":\"Simon has almost 20 years experience on diverse topics such as systems programming, application performance and scale out storage. The cloud is now his current focus, specializing in enterprise network architecture, information security and platform orchestration across a wide range of technologies.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/simon-murraycouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Preenchendo lacunas: Operador Aut\u00f4nomo 1.2 Aprimoramentos de rede","description":"How Kubernetes network improvements in Autonomous Operator 1.2.0 provide streamlined configuration of XDCR, and client access from the public internet.","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\/autonomous-operator-1-2-0-networking\/","og_locale":"pt_BR","og_type":"article","og_title":"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements","og_description":"How Kubernetes network improvements in Autonomous Operator 1.2.0 provide streamlined configuration of XDCR, and client access from the public internet.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/autonomous-operator-1-2-0-networking\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-05-07T17:54:05+00:00","article_modified_time":"2025-06-14T04:33:45+00:00","og_image":[{"width":1999,"height":786,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg","type":"image\/jpeg"}],"author":"Simon Murray, Senior Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Simon Murray, Senior Software Engineer, Couchbase","Est. reading time":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/"},"author":{"name":"Simon Murray, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8b03ed823446340bba90154b6fcd7a23"},"headline":"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements","datePublished":"2019-05-07T17:54:05+00:00","dateModified":"2025-06-14T04:33:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/"},"wordCount":1723,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg","articleSection":["Couchbase Autonomous Operator","Couchbase Capella","Kubernetes"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/","url":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/","name":"Preenchendo lacunas: Operador Aut\u00f4nomo 1.2 Aprimoramentos de rede","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg","datePublished":"2019-05-07T17:54:05+00:00","dateModified":"2025-06-14T04:33:45+00:00","description":"How Kubernetes network improvements in Autonomous Operator 1.2.0 provide streamlined configuration of XDCR, and client access from the public internet.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/image4.jpg","width":1999,"height":786},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/autonomous-operator-1-2-0-networking\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Bridging Gaps: Autonomous Operator 1.2 Network Enhancements"}]},{"@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\/8b03ed823446340bba90154b6fcd7a23","name":"Simon Murray, engenheiro de software s\u00eanior, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/bf0dbf1d557d4349cd907431f40a61ac","url":"https:\/\/secure.gravatar.com\/avatar\/c5918b7fdf9c2714c0b72bd1d7366f65751da5f40cbcfdede50d123f4c40c893?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c5918b7fdf9c2714c0b72bd1d7366f65751da5f40cbcfdede50d123f4c40c893?s=96&d=mm&r=g","caption":"Simon Murray, Senior Software Engineer, Couchbase"},"description":"Simon has almost 20 years experience on diverse topics such as systems programming, application performance and scale out storage. The cloud is now his current focus, specializing in enterprise network architecture, information security and platform orchestration across a wide range of technologies.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/simon-murraycouchbase-com\/"}]}},"authors":[{"term_id":9076,"user_id":25957,"is_guest":0,"slug":"simon-murraycouchbase-com","display_name":"Simon Murray, Senior Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/c5918b7fdf9c2714c0b72bd1d7366f65751da5f40cbcfdede50d123f4c40c893?s=96&d=mm&r=g","author_category":"","last_name":"Murray","first_name":"Simon","job_title":"","user_url":"","description":"Simon tem quase 20 anos de experi\u00eancia em diversos t\u00f3picos, como programa\u00e7\u00e3o de sistemas, desempenho de aplicativos e armazenamento em escala.  A nuvem \u00e9 agora seu foco atual, especializando-se em arquitetura de rede corporativa, seguran\u00e7a da informa\u00e7\u00e3o e orquestra\u00e7\u00e3o de plataformas em uma ampla gama de tecnologias."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/6804","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\/25957"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=6804"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/6804\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/6809"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=6804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=6804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=6804"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=6804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}