Servidor Couchbase

Executando o operador autônomo do Couchbase na VMware

Cormac Hogan é diretor e tecnólogo-chefe no escritório do CTO na unidade de negócios de armazenamento e disponibilidade (SABU) da VMware. 

Biografia: Entrei na VMware em abril de 2005 e, anteriormente, ocupei cargos nas organizações de engenharia, marketing técnico e suporte técnico da VMware. Escrevi vários white papers relacionados a armazenamento e fiz várias apresentações sobre práticas recomendadas de armazenamento e recursos de armazenamento do vSphere. Também sou coautor dos livros "Essential Virtual SAN" e "vSAN 6.7 Deep Dive".

Uma primeira olhada no Operador Autônomo do Couchbase

Algumas semanas atrás, Dei uma olhada no Heptio Velero, anteriormente conhecido como Ark. O Velero oferece recursos de backup e restauração para aplicativos nativos da nuvem. Durante essa pesquisa, usei um banco de dados Couchbase como meu aplicativo de escolha para backup/restauração. Depois de falar com a equipe do Couchbase sobre essa postagem no blog, eles recomendaram fortemente que eu experimentasse o novo Couchbase Autonomous Operator em vez do método StatefulSet que eu estava usando para o aplicativo. O Couchbase fala sobre as vantagens da abordagem do operador em relação ao StatefulSets aqui.

Agora, embora o Couchbase forneça etapas sobre como implantar o Couchbase com seu operador, ele o cria no namespace padrão do K8s. No meu teste, quero colocar o Couchbase em seu próprio namespace. As etapas fornecidas aqui servem para que você comece a usar o novo Couchbase Operator, executado na infraestrutura do vSphere e do vSAN, em seu próprio namespace do Kubernetes. Também falo sobre alguns problemas com a ferramenta de geração de carga incluída, chamada pillowfight.

O Couchbase fornece instruções prescritivas sobre como começar a usar sua operadora aqui. Ele inclui todos os arquivos de configuração necessários. Algumas informações sobre o operador:

  • Quando carregado, ele faz o download da imagem do Operator Docker, conforme especificado no operator.yaml arquivo. Ele usa uma construção de implantação para que possa reiniciar se o pod em que está sendo executado morrer.
  • Ele cria a definição de recurso personalizado (CRD) do CouchbaseCluster
  • Ele começa a escutar os eventos do CouchbaseCluster.

Fiz algumas modificações para permitir que o Couchbase seja executado em seu próprio namespace:

  • Primeiramente, criei um novo namespace (obviamente) chamado couchbase.
  • Quando a função de cluster foi criada, criei a conta de serviço no novo namespace do couchbase e, em seguida, atribuí a função de cluster a essa conta de serviço usando uma associação de função de cluster.
  • Modifiquei o operator.yaml para incluir um arquivo metadata.namespace=couchbase para que ela se aplique ao namespace do couchbase

Ao monitorar os logs do pod do operador do couchbase, podemos observar as seguintes mensagens de inicialização:

Agora eu estava pronto para implantar o cluster do Couchbase usando o novo cbopctl CLI. Também precisei fazer algumas alterações no arquivo de configuração padrão do cluster (couchbase-cluster-sc.yaml).
  • Eu o coloquei no namespace do couchbase com o  metadados.namespace entrada
  • Eu defini spec.disableBucketManagement para true, o que me permite fazer alterações nos buckets via UI/CLI (caso contrário, tenho que fazer todas as alterações por meio de edições no arquivo YAML)
  • Adicionei Persistent Volumes para as montagens padrão e de dados (tive que criar uma nova StorageClass para o volumeClaimTemplate a ser usado para isso - veja abaixo)
 Aqui está o arquivo YAML completo do CouchbaseCluster com minhas alterações destacadas.

Estou ignorando os requisitos de autenticação e de usuário, que estão todos documentados no site do Couchbase. No entanto, depois que o aplicativo tiver sido implantado, você poderá ver o seguinte nos logs do pod do operador do Couchbase:

E se tudo for bem-sucedido, você poderá consultar os pods, os volumes persistentes e os serviços à medida que forem inicializados.

Então, para recapitular, as etapas são:
  1. Siga as etapas documentadas para configurar o couchbase ClusterRole
  2. Criar o namespace do couchbase - kubectl create ns couchbase
  3. Criar a conta de serviço do operador do couchbase no namespace do couchbase kubectl create serviceaccount couchbase-operator -namespace couchbase
  4. Criar o operador (modificado para o namespace do couchbase) - kubectl create -f operator.yaml
  5. Crie os segredos necessários (modificados para o namespac do couchbase) - kubectl create -f secret.yaml
  6. Crie o cluster do couchbase usando cbopctl - cbopctl create -f couchbase-cluster-sc.yaml
Na última saída, os serviços, temos os mapeamentos de porta para a interface do usuário do Couchbase, tanto para http quanto para https. Se nos conectarmos a qualquer um dos nós escravos do K8s com essas portas, poderemos acessar nossa implantação do Couchbase usando a credencial de administrador/senha fornecida em nossa configuração.
Inicialmente, não foram criados buckets. Há um definido na configuração do cluster, mas nós o substituímos pela configuração avançada. Podemos remediar isso rapidamente criando alguns temporários. Vou adicionar dois - o primeiro é chamado padrão e o segundo é chamado cormac. No momento, não há itens em nenhum dos baldes.
O Couchbase também inclui um utilitário chamado briga de travesseiros que é uma maneira muito útil de preencher os buckets. Por algum motivo, tive alguns problemas com a versão "sequioatools" do pillowfight. Quando passei a usar a versão "couchbaseutils", tudo ficou bem. Será necessário configurar as credenciais de usuário apropriadas para fazer isso, mas, mais uma vez, tudo isso está documentado no site principal do operador do Couchbase. Aqui estão meus exemplos de arquivos YAML para preencher o padrão balde:

A única diferença para o cormac A sintaxe do comando é um pouco diferente:

Mais importante ainda, se dermos uma olhada na interface do usuário do Couchbase, veremos que agora temos 1.000 itens em cada bucket:

 

E é isso. Você está pronto e funcionando com seu operador do Couchbase. E para encerrar, isso foi provisionado em um cluster K8s sobre a infraestrutura VMware PKS, vSphere e vSAN. A propósito, o problema com o pillowfight foi relatado aqui (o problema foi resolvido). 

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Anil Kumar, diretor de gerenciamento de produtos do banco de dados nativo da nuvem Couchbase

Anil Kumar é o diretor de gerenciamento de produtos da Couchbase. A carreira de Anil abrange mais de 19 anos de desenvolvimento de produtos de software em vários domínios, incluindo software corporativo e serviços em nuvem. Ele é um líder de produto prático responsável pelas linhas de produtos Couchbase Server, Couchbase Cloud e Kubernetes, incluindo a divulgação da estratégia e da visão do produto com clientes, parceiros, desenvolvedores e analistas. Antes de ingressar na Couchbase, Anil passou vários anos trabalhando na Microsoft Redmond. Anil tem mestrado em ciência da computação pela Universidade de Toronto (Canadá) e é bacharel em tecnologia da informação pela Universidade Tecnológica de Visvesvaraya (Índia).

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.