{"id":5207,"date":"2018-05-25T05:03:25","date_gmt":"2018-05-25T12:03:25","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=5207"},"modified":"2023-11-28T14:07:55","modified_gmt":"2023-11-28T22:07:55","slug":"databases-on-kubernetes","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/databases-on-kubernetes\/","title":{"rendered":"Bancos de dados no Kubernetes - Como se recuperar de falhas, aumentar e diminuir a escala com poucos comandos de linha"},"content":{"rendered":"<p>H\u00e1 um m\u00eas, o Kubernetes lan\u00e7ou uma vers\u00e3o beta para <a href=\"https:\/\/kubernetes.io\/blog\/2018\/04\/13\/local-persistent-volumes-beta\/\">Volumes persistentes locais<\/a>. Em resumo, isso significa que, se um pod que usa um disco local for eliminado, nenhum dado ser\u00e1 perdido (vamos ignorar os casos extremos aqui). O segredo \u00e9 que um novo pod ser\u00e1 reprogramado para ser executado no mesmo n\u00f3, aproveitando o disco que j\u00e1 existe l\u00e1.<\/p>\n<p>\u00c9 claro que a desvantagem \u00e9 que estamos vinculando nosso POD a um n\u00f3 espec\u00edfico, mas se considerarmos o tempo e o esfor\u00e7o gastos para carregar uma c\u00f3pia dos dados em outro lugar, poder aproveitar o mesmo disco se torna uma grande vantagem.<\/p>\n<p>Os bancos de dados nativos da nuvem, como o Couchbase, s\u00e3o projetados para lidar graciosamente com falhas de n\u00f3s ou Pods. Normalmente, esses n\u00f3s s\u00e3o configurados para ter pelo menos tr\u00eas r\u00e9plicas dos dados. Portanto, mesmo que voc\u00ea perca um deles, outro assumir\u00e1 o controle, e o gerenciador de cluster ou um DBA acionar\u00e1 um processo de rebalanceamento para garantir que ele ainda tenha as mesmas 3 c\u00f3pias.<\/p>\n<p>Quando montamos o <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/concepts\/node-auto-repair\">Padr\u00e3o de reparo autom\u00e1tico<\/a> Com a combina\u00e7\u00e3o do Kubernetes, dos Volumes Persistentes Locais e do processo de recupera\u00e7\u00e3o de bancos de dados nativos da nuvem, temos um mecanismo de autocorre\u00e7\u00e3o muito consistente. Essa combina\u00e7\u00e3o \u00e9 ideal para casos de uso que exigem alta disponibilidade, e \u00e9 por isso que a execu\u00e7\u00e3o de bancos de dados no Kubernetes est\u00e1 se tornando um tema t\u00e3o importante atualmente. Eu mencionei em um\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/kubernetes-operators-game-changer\/\">postagem anterior do blog<\/a>\u00a0algumas de suas vantagens, mas hoje eu gostaria de demonstr\u00e1-la em a\u00e7\u00e3o para mostrar a voc\u00ea por que ela \u00e9 uma das pr\u00f3ximas grandes novidades.<\/p>\n<p>Vamos ver como \u00e9 f\u00e1cil implantar, recuperar de falhas de pod e escalar para cima e para baixo um banco de dados para o Kubernetes:<\/p>\n<p>&nbsp;<\/p>\n<p><iframe loading=\"lazy\" title=\"Implanta\u00e7\u00e3o do Couchbase no Kubernetes\" width=\"900\" height=\"506\" src=\"https:\/\/www.youtube.com\/embed\/bzBtR0N0QBI?feature=oembed&#038;enablejsapi=1&#038;origin=https:\/\/www.couchbase.com\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Transcri\u00e7\u00e3o de v\u00eddeo<\/strong><\/h2>\n<p><strong>\u00a0<\/strong><strong>\u00a0<\/strong><\/p>\n<h3><strong>Configura\u00e7\u00e3o de seu cluster do Kubernetes<\/strong><\/h3>\n<p>Vamos come\u00e7ar configurando seu cluster do Kubernetes. Para esta demonstra\u00e7\u00e3o, eu fa\u00e7o <strong>n\u00e3o<\/strong> recomendamos o uso do MiniKube. Se voc\u00ea n\u00e3o tiver um cluster para testes, poder\u00e1 criar um rapidamente usando ferramentas como\u00a0<a href=\"https:\/\/stackpoint.io\/\">Ponto de pilha<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Arquivos YAML<\/strong><\/h3>\n<p><strong>\u00a0<\/strong>Todos os arquivos usados no v\u00eddeo est\u00e3o dispon\u00edveis aqui:<\/p>\n<pre class=\"lang:default decode:true\">https:\/\/github.com\/deniswsrosa\/microservices-on-kubernetes\/tree\/master\/kubernetes<\/pre>\n<p>&nbsp;<\/p>\n<h3><strong>Implanta\u00e7\u00e3o do operador Kubernetes do Couchbase<\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p>Um Operator no Kubernetes, a partir de uma vis\u00e3o geral de 10000 p\u00e9s, \u00e9 um conjunto de controladores personalizados para uma determinada finalidade. Nesta demonstra\u00e7\u00e3o, o Operator \u00e9 respons\u00e1vel por unir novos n\u00f3s ao cluster, acionar o rebalanceamento de dados e dimensionar corretamente o banco de dados no Kubernetes:<\/p>\n<ul>\n<li>Configura\u00e7\u00e3o de permiss\u00f5es:<\/li>\n<\/ul>\n<pre class=\"lang:default decode:true\">.\/rbac\/create_role.sh<\/pre>\n<ul>\n<li>Implementa\u00e7\u00e3o do operador:<\/li>\n<\/ul>\n<pre class=\"lang:default decode:true\">kubeclt create -f operator.yaml<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5209\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/couchbase_operator-1024x162.png\" alt=\"\" width=\"767\" height=\"121\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/couchbase_operator-1024x162.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/couchbase_operator-300x48.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/couchbase_operator-768x122.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/couchbase_operator-20x3.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/couchbase_operator-1320x209.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/couchbase_operator.png 1437w\" sizes=\"auto, (max-width: 767px) 100vw, 767px\" \/><\/p>\n<p>Voc\u00ea pode consultar a documenta\u00e7\u00e3o oficial <a href=\"https:\/\/docs.couchbase.com\/prerelease\/couchbase-operator\/beta\/overview.html\">aqui<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Implanta\u00e7\u00e3o de um banco de dados no Kubernetes<\/strong><\/h3>\n<p><strong>\u00a0<\/strong><\/p>\n<ul>\n<li>Vamos criar o nome de usu\u00e1rio e a senha que usaremos para fazer login no console da Web:<\/li>\n<\/ul>\n<pre class=\"lang:default decode:true\">kubeclt create -f secret.yaml<\/pre>\n<ul>\n<li>Por fim, vamos implantar nosso banco de dados no Kubernetes simplesmente executando o seguinte comando:<\/li>\n<\/ul>\n<pre class=\"lang:default decode:true\">kubeclt create -f couchbase-cluster.yaml<\/pre>\n<p>Ap\u00f3s alguns minutos, voc\u00ea perceber\u00e1 que seu banco de dados com 3 n\u00f3s est\u00e1 em funcionamento:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5210\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/couchbase_cluster-1024x231.png\" alt=\"\" width=\"723\" height=\"163\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/couchbase_cluster-1024x231.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/couchbase_cluster-300x68.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/couchbase_cluster-768x173.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/couchbase_cluster-20x5.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/couchbase_cluster.png 1303w\" sizes=\"auto, (max-width: 723px) 100vw, 723px\" \/><\/p>\n<p>N\u00e3o vou entrar em muitos detalhes sobre como <strong>couchbase-cluster.yaml <\/strong>obras (documento oficial)\u00a0<a href=\"https:\/\/docs.couchbase.com\/prerelease\/couchbase-operator\/beta\/couchbaseClusterConfig.html\">aqui<\/a>). Mas eu gostaria de destacar duas sess\u00f5es importantes nesse arquivo:<\/p>\n<ul>\n<li>A sess\u00e3o a seguir especifica o nome do bucket e o n\u00famero de r\u00e9plicas dos dados:<\/li>\n<\/ul>\n<pre class=\"lang:yaml decode:true\">...\r\n  buckets:\r\n    - name: couchbase-sample\r\n      type: couchbase\r\n      memoryQuota: 128\r\n      replicas: 3\r\n      ioPriority: high\r\n      evictionPolicy: fullEviction\r\n      conflictResolution: seqno\r\n      enableFlush: true\r\n      enableIndexReplica: false\r\n...<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li>A sess\u00e3o abaixo especifica o n\u00famero de servidores (3) e quais servi\u00e7os devem ser executados em cada n\u00f3.<\/li>\n<\/ul>\n<pre class=\"lang:yaml decode:true\">...\r\nservers:\r\n    - size: 3\r\n      name: all_services\r\n      services:\r\n        - data\r\n        - index\r\n        - query\r\n        - search\r\n      dataPath: \/opt\/couchbase\/var\/lib\/couchbase\/data\r\n      indexPath: \/opt\/couchbase\/var\/lib\/couchbase\/data\r\n...<\/pre>\n<p>&nbsp;<\/p>\n<h3><strong>Acesso ao seu banco de dados no Kubernetes<\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p>H\u00e1 muitas maneiras de expor o console da Web ao mundo externo. <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress\/\">Ingresso<\/a>por exemplo, \u00e9 um deles. No entanto, para fins desta demonstra\u00e7\u00e3o, vamos simplesmente encaminhar a porta 8091 do pod cb-example-0000 para nossa m\u00e1quina local<\/p>\n<pre class=\"lang:default decode:true\">kubectl port-forward cb-example-0000 8091:8091<\/pre>\n<p>Agora, voc\u00ea deve conseguir acessar o Console da Web do Couchbase em sua m\u00e1quina local em <a href=\"https:\/\/localhost:8091\">https:\/\/localhost:8091<\/a>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5211\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/Couchbase_Local-1024x444.png\" alt=\"\" width=\"738\" height=\"320\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Local-1024x444.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Local-300x130.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Local-768x333.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Local-1536x666.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Local-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Local-1320x572.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Local.png 2048w\" sizes=\"auto, (max-width: 738px) 100vw, 738px\" \/><\/p>\n<p>Observe que os tr\u00eas n\u00f3s j\u00e1 est\u00e3o conversando entre si:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5212\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/Couchbase_Cluster_Nodes-1024x231.png\" alt=\"\" width=\"820\" height=\"185\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-1024x231.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-300x68.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-768x173.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-1536x347.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-20x5.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-1320x298.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes.png 2048w\" sizes=\"auto, (max-width: 820px) 100vw, 820px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Recupera\u00e7\u00e3o de uma falha de n\u00f3 de banco de dados no Kubernetes<\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p>Adicionei alguns dados para ilustrar que nada \u00e9 perdido durante todo o processo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5213\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/Selecting_data_couchbase-1024x436.png\" alt=\"\" width=\"698\" height=\"297\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase-1024x436.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase-300x128.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase-768x327.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase-1536x654.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase-1320x562.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase.png 1940w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Agora, podemos excluir um pod para ver como o cluster se comporta:<\/p>\n<pre class=\"lang:default decode:true\">kubectl delete pod cb-example-0002<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-5214\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/delete_pod_database-1024x111.png\" alt=\"\" width=\"900\" height=\"98\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/delete_pod_database-1024x111.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/delete_pod_database-300x32.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/delete_pod_database-768x83.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/delete_pod_database-20x2.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/delete_pod_database.png 1314w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>O Couchbase perceber\u00e1 imediatamente que um n\u00f3 \"<em>desapareceu<\/em>\" e o processo de recupera\u00e7\u00e3o ser\u00e1 iniciado. Conforme especificamos em <strong>couchbase-cluster.yaml<\/strong> que sempre queremos 3 servidores em execu\u00e7\u00e3o, o Kubernetes iniciar\u00e1 uma nova inst\u00e2ncia <strong>chamado <\/strong>cb<strong>-exemplo-0003<\/strong>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5215\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/recovering_database_failure-1024x357.png\" alt=\"\" width=\"714\" height=\"249\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/recovering_database_failure-1024x357.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/recovering_database_failure-300x104.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/recovering_database_failure-768x267.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/recovering_database_failure-1536x535.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/recovering_database_failure-800x280.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/recovering_database_failure-20x7.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/recovering_database_failure-1320x460.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/recovering_database_failure.png 2048w\" sizes=\"auto, (max-width: 714px) 100vw, 714px\" \/><\/p>\n<p>Uma vez <strong>cb-example-003<\/strong> est\u00e1 ativo, o operador entra em a\u00e7\u00e3o para unir o n\u00f3 rec\u00e9m-criado ao cluster e, em seguida, aciona o rebalanceamento de dados<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5216\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/data_rebalancing-1024x403.png\" alt=\"\" width=\"750\" height=\"295\" \/><\/p>\n<p>Como voc\u00ea pode ver, nenhum dado foi perdido durante esse processo. A reexecu\u00e7\u00e3o da mesma consulta resulta no mesmo n\u00famero de documentos:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5217\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/Selecting_data_couchbase2-1024x436.png\" alt=\"\" width=\"757\" height=\"322\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase2-1024x436.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase2-300x128.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase2-768x327.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase2-1536x654.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase2-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase2-1320x562.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Selecting_data_couchbase2.png 1940w\" sizes=\"auto, (max-width: 757px) 100vw, 757px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Dimensionamento de um banco de dados no Kubernetes<\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p>Vamos aumentar a escala de 3 para 6 n\u00f3s; tudo o que precisamos fazer \u00e9 alterar o <strong>tamanho<\/strong> par\u00e2metro em <strong>couchbase-cluster.yaml<\/strong>:<\/p>\n<pre class=\"lang:yaml decode:true\">...\r\nservers:\r\n    - size: 6\r\n      name: all_services\r\n      services:\r\n        - data\r\n        - index\r\n        - query\r\n        - search\r\n      dataPath: \/opt\/couchbase\/var\/lib\/couchbase\/data\r\n      indexPath: \/opt\/couchbase\/var\/lib\/couchbase\/data\r\n...<\/pre>\n<p>&nbsp;<\/p>\n<p>Em seguida, atualizamos nossa configura\u00e7\u00e3o executando:<\/p>\n<pre class=\"lang:default decode:true\">kubectl replace -f couchbase-cluster.yaml<\/pre>\n<p>Ap\u00f3s alguns minutos, voc\u00ea ver\u00e1 que todos os tr\u00eas n\u00f3s extras foram criados:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5218\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/6-nodes-running_couchbase-1024x332.png\" alt=\"\" width=\"700\" height=\"227\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-running_couchbase-1024x332.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-running_couchbase-300x97.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-running_couchbase-768x249.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-running_couchbase-20x6.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-running_couchbase-1320x428.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-running_couchbase.png 1368w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<p>E, novamente, o operador reequilibrar\u00e1 automaticamente os dados:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5219\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/6-nodes-couchbase_rebalancing-1024x374.png\" alt=\"\" width=\"771\" height=\"282\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-couchbase_rebalancing-1024x374.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-couchbase_rebalancing-300x109.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-couchbase_rebalancing-768x280.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-couchbase_rebalancing-1536x560.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-couchbase_rebalancing-20x7.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-couchbase_rebalancing-1320x481.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/6-nodes-couchbase_rebalancing.png 2048w\" sizes=\"auto, (max-width: 771px) 100vw, 771px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Dimensionamento de um banco de dados no Kubernetes<\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p>O processo de redu\u00e7\u00e3o de escala \u00e9 muito semelhante ao de aumento de escala. Tudo o que precisamos fazer \u00e9 alterar o <strong>tamanho<\/strong> de 6 para 3:<\/p>\n<pre class=\"lang:default decode:true\">...\r\nservers:\r\n    - size: 3\r\n      name: all_services\r\n      services:\r\n        - data\r\n        - index\r\n        - query\r\n        - search\r\n      dataPath: \/opt\/couchbase\/var\/lib\/couchbase\/data\r\n      indexPath: \/opt\/couchbase\/var\/lib\/couchbase\/data\r\n...<\/pre>\n<p>Em seguida, executamos o comando replace novamente para atualizar a configura\u00e7\u00e3o:<\/p>\n<pre class=\"lang:default decode:true\">kubectl replace -f couchbase-cluster.yaml\r\n<\/pre>\n<p>No entanto, h\u00e1 um pequeno detalhe aqui, pois n\u00e3o podemos simplesmente eliminar 3 n\u00f3s ao mesmo tempo sem algum risco de perda de dados. Para evitar esse problema, o operador reduz o cluster gradualmente, uma \u00fanica inst\u00e2ncia de cada vez, acionando o rebalanceamento para garantir que todas as tr\u00eas r\u00e9plicas dos dados sejam preservadas:<\/p>\n<ul>\n<li>Operador desligando o n\u00f3 cb-example-0006:<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5221\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/killing_node_6-1-1024x469.png\" alt=\"\" width=\"751\" height=\"344\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_6-1-1024x469.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_6-1-300x137.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_6-1-768x352.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_6-1-1536x704.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_6-1-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_6-1-1320x605.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_6-1.png 2048w\" sizes=\"auto, (max-width: 751px) 100vw, 751px\" \/><\/p>\n<ul>\n<li>Operador desligando o n\u00f3 cb-example-0005<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5222\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/killing_node_5-1024x395.png\" alt=\"\" width=\"744\" height=\"287\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_5-1024x395.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_5-300x116.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_5-768x296.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_5-1536x593.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_5-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_5-1320x509.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/killing_node_5.png 2048w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/p>\n<ul>\n<li>Desligamento do n\u00f3 cb-example-0004<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5223\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/killing_node_4-1024x340.png\" alt=\"\" width=\"747\" height=\"248\" \/><\/p>\n<ul>\n<li>Finalmente, voltamos a ter 3 n\u00f3s novamente<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5224\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/Couchbase_Cluster_Nodes-1-1024x231.png\" alt=\"\" width=\"749\" height=\"169\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-1-1024x231.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-1-300x68.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-1-768x173.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-1-1536x347.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-1-20x5.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-1-1320x298.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/Couchbase_Cluster_Nodes-1.png 2048w\" sizes=\"auto, (max-width: 749px) 100vw, 749px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Escala multidimensional<\/strong><\/h3>\n<p><strong>\u00a0<\/strong>Voc\u00ea tamb\u00e9m pode aproveitar <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/multi-dimensional-scalability-overview\/\">escalonamento multidimensional<\/a> especificando os servi\u00e7os que voc\u00ea deseja executar em cada n\u00f3:<\/p>\n<pre class=\"lang:default decode:true\">...\r\nservers:\r\n    - size: 3\r\n      name: data_and_index\r\n      services:\r\n        - data\r\n        - index\r\n      dataPath: \/opt\/couchbase\/var\/lib\/couchbase\/data\r\n      indexPath: \/opt\/couchbase\/var\/lib\/couchbase\/data\r\n    - size: 2\r\n      name: query_and_search\r\n      services:\r\n        - query\r\n        - search\r\n\r\n...<\/pre>\n<p>&nbsp;<\/p>\n<h3>\u00a0<strong>E quanto a outros bancos de dados no Kubernetes?<\/strong><\/h3>\n<p><strong>\u00a0<\/strong><\/p>\n<p>Sim! Voc\u00ea j\u00e1 pode executar alguns deles no Kubernetes, como MySQL e Postgres, como exemplos not\u00e1veis. Eles tamb\u00e9m est\u00e3o tentando automatizar a maioria das opera\u00e7\u00f5es de infraestrutura que discutimos aqui. Infelizmente, eles ainda n\u00e3o t\u00eam suporte oficial, portanto, implant\u00e1-los pode n\u00e3o ser t\u00e3o simples quanto isso.<\/p>\n<p>Se voc\u00ea quiser saber mais sobre isso, consulte essas duas palestras incr\u00edveis no Kubecon:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=J7h0F34iBx0\">Executando o MySQL no Kubernetes<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=Zn1vd7sQ_bc\">Postgres nativo do Kube<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><strong>Conclus\u00e3o<\/strong><\/h2>\n<p><strong>\u00a0<\/strong><\/p>\n<p>Atualmente, os bancos de dados est\u00e3o usando Local Ephemeral Storages para armazenar seus dados (inclusive o Couchbase). A raz\u00e3o para isso \u00e9 simples: Essa \u00e9 a op\u00e7\u00e3o que oferece o melhor desempenho. Alguns bancos de dados tamb\u00e9m est\u00e3o oferecendo suporte a armazenamentos persistentes remotos, apesar do enorme impacto na lat\u00eancia. Estamos ansiosos para que o Local Persistent Storage se torne GA, pois ele resolver\u00e1 a maioria dos receios dos desenvolvedores com essa nova tend\u00eancia.<\/p>\n<p>At\u00e9 agora, os bancos de dados totalmente gerenciados eram a \u00fanica op\u00e7\u00e3o que voc\u00ea tinha se quisesse se livrar do \u00f4nus de gerenciar seu banco de dados. O pre\u00e7o dessa liberdade, \u00e9 claro, vem na forma de alguns zeros a mais na sua conta e um controle de desempenho\/arquitetura muito limitado. O aproveitamento do Kubernetes para dimensionamento e autogerenciamento do banco de dados est\u00e1 surgindo como uma terceira op\u00e7\u00e3o, entre gerenciar tudo sozinho e confiar em algu\u00e9m para fazer isso por voc\u00ea.<\/p>\n<p>Se voc\u00ea tiver alguma d\u00favida, deixe-a nos coment\u00e1rios ou envie um tweet para <a href=\"https:\/\/twitter.com\/deniswsrosa\">@deniswsrosa<\/a>. Escreverei a parte 2 deste artigo para responder a todas elas.<\/p>","protected":false},"excerpt":{"rendered":"<p>A month ago, Kubernetes launched a beta for Local Persistent Volumes. In summary, it means that if a Pod using a local disk get killed, no data will be lost (let\u2019s ignore edge cases here). The secret is that a [&hellip;]<\/p>","protected":false},"author":8754,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1821],"tags":[],"ppma_author":[9059],"class_list":["post-5207","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-architecture"],"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>Running Database on Kubernetes: How to Recover from Failures<\/title>\n<meta name=\"description\" content=\"Running databases on Kubernetes is a hot topic nowadays. Let\u2019s see how easy it is to deploy, recover from pod failures, and scale up and down a database.\" \/>\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\/databases-on-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Databases on Kubernetes - How to Recover from Failures, Scale Up and Down in a Few Line Commands\" \/>\n<meta property=\"og:description\" content=\"Running databases on Kubernetes is a hot topic nowadays. Let\u2019s see how easy it is to deploy, recover from pod failures, and scale up and down a database.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/databases-on-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-25T12:03:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-28T22:07:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/couchbase_operator-1024x162.png\" \/>\n<meta name=\"author\" content=\"Denis Rosa, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@deniswsrosa\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Denis Rosa, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/\"},\"author\":{\"name\":\"Denis Rosa, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/fe3c5273e805e72a5294611a48f62257\"},\"headline\":\"Databases on Kubernetes &#8211; How to Recover from Failures, Scale Up and Down in a Few Line Commands\",\"datePublished\":\"2018-05-25T12:03:25+00:00\",\"dateModified\":\"2023-11-28T22:07:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/\"},\"wordCount\":1179,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Architecture\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/\",\"name\":\"Running Database on Kubernetes: How to Recover from Failures\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2018-05-25T12:03:25+00:00\",\"dateModified\":\"2023-11-28T22:07:55+00:00\",\"description\":\"Running databases on Kubernetes is a hot topic nowadays. Let\u2019s see how easy it is to deploy, recover from pod failures, and scale up and down a database.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#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\/databases-on-kubernetes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Databases on Kubernetes &#8211; How to Recover from Failures, Scale Up and Down in a Few Line Commands\"}]},{\"@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\/fe3c5273e805e72a5294611a48f62257\",\"name\":\"Denis Rosa, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/be0716f6199cfb09417c92cf7a8fa8d6\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f8d1f5c13115122cab89d0f229b904480bfe20d3dfbb093fe9734cda5235d419?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f8d1f5c13115122cab89d0f229b904480bfe20d3dfbb093fe9734cda5235d419?s=96&d=mm&r=g\",\"caption\":\"Denis Rosa, Developer Advocate, Couchbase\"},\"description\":\"Denis Rosa is a Developer Advocate for Couchbase and lives in Munich - Germany. He has a solid experience as a software engineer and speaks fluently Java, Python, Scala and Javascript. Denis likes to write about search, Big Data, AI, Microservices and everything else that would help developers to make a beautiful, faster, stable and scalable app.\",\"sameAs\":[\"https:\/\/x.com\/deniswsrosa\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/denis-rosa\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Running Database on Kubernetes: How to Recover from Failures","description":"Running databases on Kubernetes is a hot topic nowadays. Let\u2019s see how easy it is to deploy, recover from pod failures, and scale up and down a database.","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\/databases-on-kubernetes\/","og_locale":"pt_BR","og_type":"article","og_title":"Databases on Kubernetes - How to Recover from Failures, Scale Up and Down in a Few Line Commands","og_description":"Running databases on Kubernetes is a hot topic nowadays. Let\u2019s see how easy it is to deploy, recover from pod failures, and scale up and down a database.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/databases-on-kubernetes\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-05-25T12:03:25+00:00","article_modified_time":"2023-11-28T22:07:55+00:00","og_image":[{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/couchbase_operator-1024x162.png","type":"","width":"","height":""}],"author":"Denis Rosa, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@deniswsrosa","twitter_misc":{"Written by":"Denis Rosa, Developer Advocate, Couchbase","Est. reading time":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/"},"author":{"name":"Denis Rosa, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/fe3c5273e805e72a5294611a48f62257"},"headline":"Databases on Kubernetes &#8211; How to Recover from Failures, Scale Up and Down in a Few Line Commands","datePublished":"2018-05-25T12:03:25+00:00","dateModified":"2023-11-28T22:07:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/"},"wordCount":1179,"commentCount":4,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Architecture"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/","url":"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/","name":"Running Database on Kubernetes: How to Recover from Failures","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2018-05-25T12:03:25+00:00","dateModified":"2023-11-28T22:07:55+00:00","description":"Running databases on Kubernetes is a hot topic nowadays. Let\u2019s see how easy it is to deploy, recover from pod failures, and scale up and down a database.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/databases-on-kubernetes\/#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\/databases-on-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Databases on Kubernetes &#8211; How to Recover from Failures, Scale Up and Down in a Few Line Commands"}]},{"@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\/fe3c5273e805e72a5294611a48f62257","name":"Denis Rosa, defensor dos desenvolvedores, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/be0716f6199cfb09417c92cf7a8fa8d6","url":"https:\/\/secure.gravatar.com\/avatar\/f8d1f5c13115122cab89d0f229b904480bfe20d3dfbb093fe9734cda5235d419?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f8d1f5c13115122cab89d0f229b904480bfe20d3dfbb093fe9734cda5235d419?s=96&d=mm&r=g","caption":"Denis Rosa, Developer Advocate, Couchbase"},"description":"Denis Rosa \u00e9 um Developer Advocate do Couchbase e mora em Munique, na Alemanha. Ele tem uma s\u00f3lida experi\u00eancia como engenheiro de software e fala fluentemente Java, Python, Scala e Javascript. Denis gosta de escrever sobre pesquisa, Big Data, IA, microsservi\u00e7os e tudo o mais que possa ajudar os desenvolvedores a criar um aplicativo bonito, mais r\u00e1pido, est\u00e1vel e escal\u00e1vel.","sameAs":["https:\/\/x.com\/deniswsrosa"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/denis-rosa\/"}]}},"authors":[{"term_id":9059,"user_id":8754,"is_guest":0,"slug":"denis-rosa","display_name":"Denis Rosa, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f8d1f5c13115122cab89d0f229b904480bfe20d3dfbb093fe9734cda5235d419?s=96&d=mm&r=g","author_category":"","last_name":"Rosa, Developer Advocate, Couchbase","first_name":"Denis","job_title":"","user_url":"","description":"Denis Rosa \u00e9 um Developer Advocate do Couchbase e mora em Munique, na Alemanha. Ele tem uma s\u00f3lida experi\u00eancia como engenheiro de software e fala fluentemente Java, Python, Scala e Javascript. Denis gosta de escrever sobre pesquisa, Big Data, IA, microsservi\u00e7os e tudo o mais que possa ajudar os desenvolvedores a criar um aplicativo bonito, mais r\u00e1pido, est\u00e1vel e escal\u00e1vel."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/5207","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\/8754"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=5207"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/5207\/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=5207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=5207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=5207"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=5207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}