Temos o prazer de anunciar o lançamento do Couchbase Autonomous Operator 1.2. Este é um lançamento histórico que marca vários recursos solicitados pelos clientes, principalmente

  • Upgrade automatizado de clusters do Couchbase
  • Validação integrada de recursos do CouchbaseCluster por meio do controlador de administração
  • Suporte do leme
  • Conectividade pública para clientes do Couchbase
  • Atualização contínua de clusters do Kubernetes
  • Rotação de certificados TLS x509
  • Experiência unificada de coleta de registros para implementações com e sem estado
  • Suporte para serviços públicos do Kubernetes no GKE, AKS e EKS. O Kubernetes em execução na nuvem pública já estava funcionando desde o primeiro dia, mas com o Autonomous Operator 1.2, estamos oferecendo suporte oficial a ele. Para a perspectiva deste blog, usaremos o GKE para configurar o cluster do Kubernetes no GKE com a versão 1.12, depois implantaremos o Autonomous Operator e, por fim, implantaremos o Couchbase Cluster com Server Groups, com volumes persistentes e com certificados x509 TLS.

As etapas gerais que faremos neste blog são as seguintes:

  1. Inicializar os utilitários do gcloud
  2. Implante o cluster do Kubernetes (v1.12+) com 2 nós em cada zona de disponibilidade
  3. Implante o Operador Autônomo 1.2
  4. Implantar o cluster do Couchbase
  5. Executar o Autofailover do grupo de servidores

Pré-requisitos

  • kubectl (Os componentes do gcloud instalam o kubectl)
  • Conta GCP com as credenciais corretas
Inicializar os utilitários do gcloud

Faça o download do sdk do gcloud para a versão do sistema operacional de sua escolha a partir deste URL.

É preciso ter credenciais do Google Cloud para inicializar o cli do gcloud

Implante o cluster do Kubernetes (v1.12) com 2 nós em cada zona de disponibilidade

Implantar o cluster do Kubernetes no GKE é uma tarefa bastante simples. Para implantar clusters kubernetes resilientes, é uma boa ideia implantar nós em todas as zonas disponíveis em uma determinada região. Fazendo isso dessa forma, podemos usar o recurso de reconhecimento de Grupos de servidores ou Zona de rack ou Zona de disponibilidade (AZ) no servidor Couchbase, o que significa que, se perdermos toda a AZ, o couchbase poderá fazer failover de toda a AZ e o aplicativo ficará ativo, pois ainda tem o conjunto de dados em funcionamento.

Mais tipos de máquinas podem ser aqui

Nesse momento, o cluster do k8s com o número necessário de nós deve estar em funcionamento

Os detalhes do cluster k8s podem ser encontrados abaixo

Implante o Operador Autônomo 1.2

O GKE é compatível com o RBAC para limitar as permissões. Como o Couchbase Operator cria recursos em nosso cluster do GKE, precisaremos conceder a ele a permissão para fazer isso.

Baixar o pacote apropriado para a implantação do kubernetes em seu ambiente. Descompacte o pacote e implemente o controlador de admissão.

Verificar o status do controlador de admissão

Para visualizar como o controlador de admissão funciona em sincronia com o operador e o cluster do couchbase, ele pode ser melhor ilustrado com o diagrama a seguir

As próximas etapas são criar o crd, a função de operador e o operador 1.2

Quando o operador é implantado, ele fica pronto e disponível em segundos

Implantar o cluster do Couchbase

O cluster do Couchbase será implantado com os seguintes recursos

  • Certificados TLS
  • Grupos de servidores (cada grupo de servidores em uma AZ)
  • Volumes persistentes (que são compatíveis com AZ)
  • Auto-failover do grupo de servidores
Certificados TLS

É bastante fácil gerar certificados tls; as etapas detalhadas podem ser encontradas em aqui

Depois de implantados, os segredos tls podem ser encontrados com o comando kubectl secret, como abaixo

Grupos de servidores

A configuração de grupos de servidores também é simples, o que será discutido nas seções a seguir quando implantarmos o arquivo yaml do cluster do couchbase.

Volumes persistentes

Os volumes persistentes oferecem uma maneira confiável de executar aplicativos com estado. Criá-los na nuvem pública é uma operação de um clique.

Primeiro, podemos verificar qual classe de armazenamento está disponível para uso

Todos os nós de trabalho disponíveis no cluster do k8s devem ter rótulos de domínio de falha, como abaixo

OBSERVAÇÃO: não preciso adicionar nenhum rótulo de domínio de falha, o GKE adicionou automaticamente.

Criar PV para cada AZ

O arquivo yaml svrgp-pv.yaml pode ser encontrado aqui.

Criar segredo para acessar a interface do usuário do couchbase

Por fim, implemente o cluster do Couchbase com suporte a TLS, juntamente com os Grupos de Servidores (que são compatíveis com o AZ) e em volumes persistentes (que também são compatíveis com o AZ).

O arquivo yaml couchbase-persistent-tls-svrgps.yaml pode ser encontrado aqui

Aguarde alguns minutos e o cluster do couchbase será ativado e deverá ter a seguinte aparência

Uma verificação rápida das reivindicações de volumes persistentes pode ser feita da seguinte forma

Para acessar a interface do usuário do cluster do Couchbase, podemos fazer o port-foward da porta 8091 de qualquer pod ou serviço em si, no laptop local ou na máquina local, ou ela pode ser exposta via lb.

encaminhamento de porta para qualquer pod, como abaixo

Nesse ponto, o servidor couchbase está em funcionamento e temos como acessá-lo.

Executar o Autofailover do grupo de servidores
Auto-failover do grupo de servidores

Quando um nó do cluster do couchbase falha, ele pode fazer o failover automático e, sem nenhuma intervenção do usuário, TODO o conjunto de trabalho está disponível, não é necessária nenhuma intervenção do usuário e o aplicativo não sofrerá tempo de inatividade.

Se o cluster do Couchbase estiver configurado para ser compatível com o Server Group (SG) ou AZ ou Rack Zone (RZ), mesmo que percamos todo o SG, os grupos de servidores inteiros sofrerão falha e o conjunto de trabalho estará disponível, não será necessária nenhuma intervenção do usuário e o aplicativo não sofrerá tempo de inatividade.

Para ter uma recuperação de desastres, o XDCR pode ser usado para replicar os dados do Couchbase para outro cluster do Couchbase. Isso ajuda no caso de perda de todo o data center ou região de origem, os aplicativos podem ser transferidos para o site remoto e não haverá tempo de inatividade.

Vamos remover o grupo de servidores. Antes disso, vamos ver como é o cluster

Exclua todos os pods no grupo us-east1-b. Depois que os pods forem excluídos, o cluster do Couchbase verá que os nós são

O operador está constantemente observando a definição do cluster e verá que o grupo de servidores foi perdido, girará os 3 pods, restabelecerá as reivindicações nos PVs e executará a recuperação do nó delta e, por fim, executará a operação de rebalanceamento e o cluster estará saudável novamente. Tudo isso sem nenhuma intervenção do usuário.

Depois de algum tempo, o cluster está de volta e funcionando.

Nos registros do operador,

podemos ver que o cluster é automaticamente reequilibrado.

Epílogo

A diferenciação sustentada é fundamental para nossa tecnologia. Adicionamos um grande número de recursos novos e de suporte. Com todos esses recursos de suporte de nível empresarial, eles permitem que o usuário final encontre os problemas mais rapidamente e ajudam a operacionalizar o Couchbase Operator em seus ambientes de maneira mais rápida e eficiente. Estamos muito animados com o lançamento, sinta-se à vontade para experimentar!

 

Referências:

https://docs.couchbase.com/operator/1.2/whats-new.html

https://www.couchbase.com/downloads

https://docs.couchbase.com/server/6.0/manage/manage-groups/manage-groups.html

Livro do operador autônomo do K8s de @AnilKumar

https://info.couchbase.com/rs/302-GJY-034/images/Kubernetes_ebook.pdf

https://docs.couchbase.com/operator/1.2/tls.html

Todos os arquivos yaml e arquivos de ajuda usados para este blog podem ser encontrados aqui

 

 

 

 

Autor

Postado por Ram Dhakne

Ram Dhakne é consultor de soluções - Oeste dos EUA na Couchbase. Atualmente, ele ajuda clientes corporativos em sua jornada de inovações digitais e os ajuda a adotar tecnologias NoSQL. Seus interesses atuais são executar aplicativos persistentes como o servidor NoSQL Couchbase em clusters Kubernetes executados em AKS, GKE, ACS e OpenShift, protegendo de ponta a ponta no Kubernetes. Em sua vida pregressa, trabalhou em plataformas IaaS (AWS, GCP, Azure e nuvens privadas), produtos-alvo de backup corporativo e aplicativos de backup.

Deixar uma resposta