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 |
Versão da API: extensões/v1beta1 gentil: Implantação metadados: nome: operador de base de sofá espaço de nome: padrão especificação: réplicas: 1 modelo: metadados: rótulos: nome: operador de base de sofá especificação: contêineres: - nome: operador de base de sofá imagem: couchbase/couchbase-operator:v1 env: - nome: MY_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - nome: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name portos: - nome: porta de prontidão containerPort: 8080 readinessProbe: httpGet: caminho: /readyz porto: porta de prontidão 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 |
Versão da API: couchbase.database.couchbase.com/v1beta1 gentil: CouchbaseCluster metadados: nome: cb-example especificação: imagem de base: couchbase/servidor versão: enterprise-5.0.1 authSecret: cb-example-auth exposeAdminConsole: verdadeiro agrupamento: DataServiceMemoryQuota: 256 indexServiceMemoryQuota: 256 searchServiceMemoryQuota: 256 indexStorageSetting: memory_optimized autoFailoverTimeout: 30 baldes: - nome: padrão tipo: couchbase memoryQuota: 128 réplicas: 1 ioPrioridade: alto evictionPolicy (política de despejo): fullEviction Resolução de conflitos: seqno enableFlush: verdadeiro enableIndexReplica: falso servidores: - tamanho: 3 nome: all_services serviços: - dados - índice - consulta - pesquisa 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 criar -f https://s3.amazonaws.com/packages.couchbase.com/kubernetes/beta/couchbase-cluster.yaml conjunto de sofás "cb-example" (exemplo de cb) criado |
Ou
1 2 |
$ oc criar -f https://s3.amazonaws.com/packages.couchbase.com/kubernetes/beta/couchbase-cluster.yaml conjunto de sofás "cb-example" (exemplo de cb) criado |
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 |
servidores: - tamanho: 5 nome: todos_serviços serviços: - dados - índice - consulta - pesquisa |
1 |
kubectl substituir -f <caminho para configuração>/couchbase-agrupamento.yaml |
Ou
1 |
oc substituir -f <caminho para configuração>/couchbase-agrupamento.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. [...]