
O Couchbase Operator permite que você execute implantações do Couchbase nativamente em Kubernetes de código aberto ou Plataforma de contêineres Enterprise Red Hat OpenShift.
O objetivo do Couchbase Operator é gerenciar totalmente uma ou mais implantações do Couchbase, removendo as complexidades operacionais da execução do Couchbase ao automatizar o gerenciamento de tarefas comuns do Couchbase, como configuração, criação, atualização e dimensionamento de clusters do Couchbase.
Ao reduzir a complexidade da execução de um cluster do Couchbase, ele permite que você se concentre na configuração desejada e não se preocupe com os detalhes da implantação manual e do gerenciamento do ciclo de vida.

O que é o Kubernetes Operator?
Um Operator é um controlador específico de aplicativo que estende a API do Kubernetes para criar, configurar e gerenciar instâncias de aplicativos complexos com estado em nome de um usuário do Kubernetes. Ele se baseia no controle básico Recurso do Kubernetes e conceitos de controlador, mas também inclui conhecimento específico de domínio ou aplicativo para automatizar tarefas comuns melhor gerenciadas por computadores.
O Kubernetes Operators foi apresentado pela equipe do CoreOS e, em seu anúncioO CoreOS sugeriu os Operators como um meio de gerenciar com mais eficiência a infraestrutura do banco de dados.
Como funciona?
O Operador do Couchbase estende a API do Kubernetes criando uma Definição de Recurso Personalizado (CRD) e registrando um controlador específico do Couchbase (o Operador) para gerenciar clusters do Couchbase.
O CRD permite que você defina uma configuração que descreve como deve ser um cluster do Couchbase. Por exemplo, uma configuração pode definir um cluster com três nós, um bucket e 8 GB de memória para o serviço de dados. Depois que a configuração é carregada no Kubernetes, ela é passada para o controlador personalizado do Couchbase, que executa ações para garantir que um cluster do Couchbase com a configuração especificada seja provisionado.
O controlador também pode detectar atualizações na configuração e reage às alterações que ocorrem no próprio cluster. Como todos os recursos integrados padrão do Kubernetes, o Couchbase Operator não gerencia apenas um único cluster do Couchbase, mas vários clusters do Couchbase em uma implantação inteira do Kubernetes.
Aqui está um exemplo de arquivo de configuração para o Operador do Couchbase:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: couchbase-operator namespace: default spec: replicas: 1 template: metadata: labels: name: couchbase-operator spec: containers: - name: couchbase-operator image: couchbase/couchbase-operator:v1 env: - name: MY_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name ports: - name: readiness-port containerPort: 8080 readinessProbe: httpGet: path: /readyz port: readiness-port initialDelaySeconds: 3 periodSeconds: 3 failureThreshold: 19 |
E aqui está um exemplo de arquivo de configuração para um Cluster do Couchbase.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
apiVersion: couchbase.database.couchbase.com/v1beta1 kind: CouchbaseCluster metadata: name: cb-example spec: baseImage: couchbase/server version: enterprise-5.0.1 authSecret: cb-example-auth exposeAdminConsole: true cluster: dataServiceMemoryQuota: 256 indexServiceMemoryQuota: 256 searchServiceMemoryQuota: 256 indexStorageSetting: memory_optimized autoFailoverTimeout: 30 buckets: - name: default type: couchbase memoryQuota: 128 replicas: 1 ioPriority: high evictionPolicy: fullEviction conflictResolution: seqno enableFlush: true enableIndexReplica: false servers: - size: 3 name: all_services services: - data - index - query - search dataPath: /opt/couchbase/var/lib/couchbase/data indexPath: /opt/couchbase/var/lib/couchbase/data |
O que está disponível na versão Beta?
Para atingir o objetivo de gerenciar totalmente uma ou mais implementações do Couchbase no Kubernetes ou no OpenShift, esta versão beta vem com alguns dos principais recursos:
- Provisionamento automatizado de clusters
- Escalabilidade elástica
- Recuperação de automóveis
- Registro em log
- Acesso ao console da Web do Couchbase
Vamos mergulhar de cabeça!
Provisionamento automatizado de clusters
Depois que a configuração do cluster do Couchbase "couchbase-cluster.yaml" for definida, ela poderá ser enviada para seu cluster do Kubernetes ou do OpenShift com o comando:.
|
1 2 |
$ kubectl create -f https://s3.amazonaws.com/packages.couchbase.com/kubernetes/beta/couchbase-cluster.yaml couchbasecluster "cb-example" created |
Ou
|
1 2 |
$ oc create -f https://s3.amazonaws.com/packages.couchbase.com/kubernetes/beta/couchbase-cluster.yaml couchbasecluster "cb-example" created |
Escalabilidade elástica
Com base na configuração, o cluster do Couchbase será totalmente provisionado no cluster do Kubernetes.
Você pode escalar seu cluster de forma elástica para cima ou para baixo atualizando a configuração do cluster e enviando as alterações para o cluster do Kubernetes com o comando abaixo.
|
1 2 3 4 5 6 7 8 |
servers: - size: 5 name: all_services services: - data - index - query - search |
|
1 |
kubectl replace -f <path to config>/couchbase-cluster.yaml |
Ou
|
1 |
oc replace -f <path to config>/couchbase-cluster.yaml |
Recuperação de automóveis
O Operador do Couchbase pode detectar falhas nos nós, reequilibrar os nós defeituosos e trazer o cluster de volta à capacidade desejada.
A recuperação automática é totalmente automatizada, incluindo a detecção do nó com falha, o failover automático, a remoção do nó com falha, a substituição por um novo nó e o reequilíbrio do novo nó no cluster.



Registro em log
A capacidade de suporte é um aspecto importante dessa capacidade de integração nativa para diagnosticar e solucionar problemas com o cluster do Couchbase que executa as plataformas Kubernetes ou OpenShift.
Leia mais sobre como capturar logs completos de implantação, logs do Couchbase Operator e logs do Couchbase Server aqui.
Acesso ao console da Web ou à CLI do Couchbase
Cada plataforma fornece a você o Deployment Dashboard - UI da Web do Kubernetes ou Console da Web do OpenShift Origin mas para o administrador ou desenvolvedor de banco de dados, eles precisam acessar o Console da Web ou a CLI do Couchbase.
Leia mais sobre como obter acesso ao Console da Web e à CLI do Couchbase aqui.
Pronto para dar uma olhada no Beta?
- É fácil colocar as mãos na versão beta seguindo as etapas abaixo Pré-requisitos e configuração para implantar o Couchbase Operator na plataforma Kubernetes ou OpenShift.
- Link para o Dockerfile
- Servidor Couchbase - https://hub.docker.com/_/couchbase/
- Operador do Couchbase - https://hub.docker.com/r/couchbase/k8s-operator/
Se você tiver alguma dúvida, comentário ou feedback adicional, deixe um comentário abaixo ou publique em https://www.couchbase.com/forums/.
[...] https://www.couchbase.com/introducing-couchbase-operator/ - postagem do blog sobre o Couchbase Operator. [...]