O que é o Helm?
O Helm é uma ferramenta que simplifica a instalação e o gerenciamento de aplicativos em plataformas Kubernetes. O gráfico do Helm do Couchbase Autonomous Operator permite que os usuários combinem definições do Kubernetes para recursos como serviços, funções e implantações em um único pacote personalizável. Como o Helm é essencialmente um gerenciador de pacotes para aplicativos do Kubernetes, todos os recursos instalados podem ser gerenciados e atualizados como uma única unidade usando uma abordagem do tipo tudo ou nada, que garante que todas as dependências necessárias para cada versão sejam instaladas com êxito durante a atualização. Este blog descreve como usar o Helm para instalar o Operador Autônomo do Couchbase junto com um Cluster do Couchbase no seu ambiente do Kubernetes.
Instalando o Helm
Supondo que você tenha um cluster do Kubernetes em execução pelo menos na versão 1.11, está tudo pronto para começar a usar o helm para implantar um cluster do Couchbase. A primeira etapa é instalar o cliente de linha de comando Helm. Os comandos a seguir farão o download e descompactarão o binário do helm em um caminho executável para o Linux (para um sistema operacional diferente, consulte liberações)
|
1 2 3 4 |
# Install helm wget https://storage.googleapis.com/kubernetes-helm/helm-v2.13.1-linux-amd64.tar.gz tar -zxvf helm-v2.13.1-linux-amd64.tar.gz sudo mv linux-amd64/helm /usr/local/bin/helm |
Agora, vamos instalar o serviço de modelos do Helms, chamado Leme. O Tiller faz todo o trabalho de interagir diretamente com a API do Kubernetes para criar recursos como serviços, segredos e pods. Como em todo bom guia de início rápido, vamos ser um pouco frouxos com a segurança por uma questão de brevidade, o que significa fornecer o Leme a capacidade de criar recursos em qualquer namespace do Kubernetes. Execute o seguinte comando para criar as regras RBAC e a ServiceAccount necessárias para o serviço Tiller:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
echo "apiVersion: v1 kind: ServiceAccount metadata: name: tiller namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: tiller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: tiller namespace: kube-system" | kubectl create -f - |
Por fim, instale o serviço tiller no cluster do kubernetes:
|
1 |
helm init --service-account tiller |
É hora de começar a pilotar!
Instalação de gráficos
Instalar o diagrama do operador
O Couchbase Operator Chart implementa o controlador de admissão dinâmica, o próprio Operator e todos os recursos necessários para executá-los em seu cluster. Esse é o poder/mágica do helm, pois ele funciona de forma muito semelhante a um gerenciador de pacotes, representando um grupo de recursos como uma única unidade instalável e atualizável.
Para instalar os gráficos, você precisará apontar o cliente helm para o nosso repositório de parceiros com o seguinte comando:
|
1 |
helm repo add couchbase https://couchbase-partners.github.io/helm-charts/ |
E agora vamos instalar o gráfico do operador:
|
1 |
helm install --name op-example couchbase/couchbase-operator |
A instalação retorna uma lista de comandos a serem executados para verificar os registros do operador.
|
1 2 3 4 5 6 7 |
NOTES: 1. couchbase-operator deployed. Check the couchbase-operator logs kubectl logs -f deployment/op-example-couchbase-operator --namespace default 2. admission-controller deployed. Check the admission-controller logs kubectl logs -f deployment/op-example-couchbase-admission-controller --namespace default |
Copie o primeiro comando para garantir que o operador tenha iniciado com êxito:
|
1 |
kubectl logs -f deployment/op-example-couchbase-operator --namespace default |
E você deve ver que o operador está escutando eventos, o que significa que ele está esperando um cluster para gerenciar:
|
1 2 3 |
time="2019-05-02T23:42:12Z" level=info msg="couchbase-operator v1.2.0 (release)" module=main ... time="2019-05-02T23:42:28Z" level=info msg="CRD initialized, listening for events... |
Instalar o gráfico do cluster do Couchbase
O gráfico de cluster do couchbase fornece uma versão de modelo do tipo de cluster do couchbase. Por padrão, esse gráfico instalará um cluster de 3 nós. Se você estiver curioso sobre os detalhes desse gráfico, poderá exibir os valores padrão com o seguinte comando:
|
1 |
helm inspect couchbase/couchbase-cluster |
Agora, vamos colocar um cluster em execução instalando o gráfico de cluster com o seguinte comando:
|
1 |
helm install --name cb-example couchbase/couchbase-cluster |
A instalação retorna etapas para obter o status do cluster, juntamente com uma maneira rápida de visualizar o console do administrador.
|
1 2 3 4 5 6 |
NOTES: 1. Get couchbase cluster status kubectl describe --namespace default couchbasecluster cb-example-couchbase-cluster 2. Connect to Admin console kubectl port-forward --namespace default cb-example-couchbase-cluster-0000 8091:8091 # open https://localhost:8091 |
Vamos executar o segundo comando para visualizar o console:
|
1 |
kubectl port-forward --namespace default cb-example-couchbase-cluster-0000 8091:8091 |
Esse comando criará um proxy do console administrativo para o seu host local na porta 8091. Navegue até https://localhost:8091 para visualizar o cluster. Se você ainda não estiver vendo o cluster, execute kubectl describe po cb-example-couchbase-cluster-0000 para obter o status do POD que está sendo encaminhado, pois pode ser que as imagens ainda estejam sendo criadas, o que geralmente acontece quando se executa em um cluster totalmente novo.
Gerenciando gráficos
Nesse ponto, você deve ter pelo menos dois gráficos instalados, um para o operador e outro para o cluster. Para visualizar a lista de gráficos instalados, execute lista de lemes:
|
1 2 3 4 5 |
~$ helm list NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE cb-example 1 Thu May 9 23:44:31 2019 DEPLOYED couchbase-cluster-0.1.2 1.2 default op-example 1 Thu May 9 23:40:36 2019 DEPLOYED couchbase-operator-0.1.2 1.2 default |
Quando um gráfico é instalado, ele é chamado pelo Helm de liberação. Você pode instalar várias versões a partir de um único gráfico. Quando uma versão é excluída usando exclusão do lemetodos os seus recursos empacotados (Pods, Serviços, Segredos) também são excluídos. Para obter mais informações sobre como personalizar o operador e o gráfico do cluster, consulte a documentação do Couchbase Operator em Atualização de uma versão.
Instalação com TLS e volumes persistentes
Para criar um cluster com TLS e Volumes persistentes, usaremos a substituição de modelo do helm para fornecer personalizações do gráfico de cluster.
Crie um arquivo chamado myvalues.yaml com os seguintes valores:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
echo "couchbaseCluster: servers: all_services: pod: volumeMounts: default: couchbase data: couchbase securityContext: fsGroup: 1000 volumeClaimTemplates: - metadata: name: couchbase spec: storageClassName: default resources: requests: storage: 1Gi couchbaseTLS: create: true" > myvalues.yaml |
Os valores acima pressupõem que você tenha uma classe de armazenamento chamada padrãoSe esse não for o caso, altere-o para o valor apropriado para seu ambiente. Agora, instale o gráfico de cluster com as substituições de valores:
|
1 |
helm install --name cbs-example -f myvalues.yaml couchbase/couchbase-cluster |
Observe que o helm gerou automaticamente o certificado CA usado pelo operador e pelos clientes, juntamente com o certificado e a chave do servidor.
|
1 2 3 4 5 6 |
RESOURCES: ==> v1/Secret NAME AGE cbs-example-couchbase-cluster 1s cbs-example-couchbase-cluster-server-tls 1s cbs-example-couchbase-cluster-operator-tls 1s |
Para visualizar o console de administração, execute o comando de encaminhamento de porta da porta de administração ativada por TLS (18091) de um pod para o seu host local com o seguinte comando:
|
1 |
kubectl port-forward --namespace default cbs-example-couchbase-cluster-0000 18091:18091 |
Navegue até https://localhost:18091 para visualizar o cluster.
Seguindo em frente
Se você estiver pensando "isso foi muito fácil", provavelmente está certo. Se estiver pensando: "Quero saber mais", dê uma olhada na página Guia de configuração para conhecer as práticas recomendadas para levar seu ambiente à produção!
Mais recursos do operador autônomo do Couchbase
-
Experimente: https://www.couchbase.com/downloads
-
Fóruns de suporte: https://www.couchbase.com/forums/c/couchbase-server/Kubernetes
-
Documentação: https://docs.couchbase.com/operator/1.2/whats-new.html
Leia mais
-
Operador autônomo 1.2.0 Deep Dive: https://www.couchbase.com/blog/deep-dive-couchbase-autonomous-operator-1-2-0
-
Operador Autônomo 1.2.0 Rede: https://www.couchbase.com/blog/autonomous-operator-1-2-0-networking