Neste blog, vamos explorar como configurar o uso do Couchbase com o Kubernetes e o CoreOS. Há várias estratégias de implementação, desde servidores físicos bare metal até máquinas virtuais na nuvem ou usando uma solução totalmente gerenciada dos principais provedores de nuvem. Para esta série, instalaremos uma solução completa de Kubernetes bare metal executando todos os componentes em seu computador local. Há alguns pré-requisitos e vamos nos aprofundar um pouco em cada um deles para entender o quadro geral. O ambiente que estou usando para este blog é:
- Caixa virtual 5.0.8
- Vagrant 1.7.4
- Mac OSX 10.11.1
- Kubernetes 1.0.6
Primeiro, precisamos configurar o Kubernetes e usaremos o Vagrant e o CoreOS. O Vagrant permite criar rapidamente ambientes de desenvolvimento consistentes entre vários membros da sua equipe. Você pode ler mais sobre o benefícios de usar o Vagrant. Vá para a seção página de downloads e selecione o pacote de sua preferência. No momento em que escrevemos este artigo, estamos usando o Vagrant 1.7.4 para MAC OSX contra o Virtual Box 5.0.8

Abra o pacote vagrant .dmg e siga as instruções de instalação. Em seguida, iniciaremos o Vagrant.
Baixar o Kubernetes
Em seu aplicativo de terminal, crie uma nova pasta e navegue até ela. Para o exemplo, criei uma pasta chamada 'couchbase-kubernetes' e é nela que passaremos a maior parte do tempo. 'kubectl' é a principal ferramenta de CLI de comando que usaremos para interagir com a API do Kubernetes.
|
1 2 |
$mkdir couchbase-kubernetes |
|
1 2 |
$cd couchbase-kubernetes/ |

Na pasta 'couchbase-kubernetes', faremos o download dos binários. Primeiro, instale o gerenciador de pacotes, HomebrewSe você ainda não o fez, execute um 'wget' no:
|
1 2 |
$ARCH=darwin; wget https://storage.googleapis.com/kubernetes-release/release/v1.0.6/bin/$ARCH/amd64/kubectl |
Você verá algo semelhante ao que está abaixo, onde o 'kubectl' é salvo. Escolhi o ambiente 'darwin' porque estou no MacOSX e você também pode escolher 'linux' dependendo do sistema operacional da sua estação de trabalho.

Verifique se o binário é um executável, executando-o:
|
1 2 |
$file kubectl |
Você deve ver que o arquivo 'kubectl' existe e que é um executável x86_64, como abaixo.

Vamos mover 'kubectl' para o nosso PATH executando:
|
1 2 |
$chmod +x kubectl |
|
1 2 |
$mv kubectl /usr/local/bin/kubectl |

Execute o Kubernetes com o CoreOS
Agora estamos prontos para configurar as máquinas virtuais que executarão o Kubernetes no CoreOS. Primeiro, vamos clonar o repositório que contém um Vagrantfile. O 'Vagrantfile' terá as configurações das máquinas virtuais do Kubernetes. Execute o comando:
|
1 2 |
$git clone https://github.com/coreos/coreos-kubernetes.git |
Agora você deve ter o repositório 'coreos-kubernetes' depois de ver algo semelhante a seguir

Iniciar o Kubernetes
Agora estamos prontos para iniciar nossa máquina. Para fazer isso, vamos primeiro navegar até a pasta 'single-node' onde iniciaremos o Vagrant
|
1 2 |
$cd coreos-kubernetes/single-node/ |
A partir da pasta 'single-node', executaremos os comandos abaixo para ter uma máquina virtual totalmente em execução no VirtualBox.
|
1 2 |
$vagrant init hashicorp/precise64 |
Visando a versão de 64 bits, abaixo está o que você verá durante o processo de configuração da caixa do Ubuntu 12.04 LTS de 64 bits.

Em seguida, vamos executar a máquina virtual no VirtualBox:
|
1 2 |
$vagrant up |

Configuração do kubectl
No diretório 'single-node', em seguida, configuraremos o cliente Kubernetes local com os comandos abaixo.
|
1 2 |
$kubectl config set-cluster vagrant --server=https://172.17.4.99:443 --certificate-authority=${PWD}/ssl/ca.pem |
|
1 2 |
$kubectl config set-credentials vagrant-admin --certificate-authority=${PWD}/ssl/ca.pem --client-key=${PWD}/ssl/admin-key.pem --client-certificate=${PWD}/ssl/admin.pem |
|
1 2 |
$kubectl config set-context vagrant --cluster=vagrant --user=vagrant-admin |
|
1 2 |
$kubectl config use-context vagrant |

Agora que tudo está pronto, você pode ver o status do cluster e suas informações de configuração executando:
|
1 2 |
$kubectl get nodes |

Parabéns! Agora você tem um cluster do Kubernetes em execução e configurado. Essa é a primeira etapa antes de executar o Couchbase nele. A seguir, exploraremos como executar o Couchbase no cluster do Kubernetes.
Configuração do Couchbase
A partir do diretório 'single-node', começaremos a trazer as peças do Couchbase. A partir daí, podemos configurar o Couchbase para lógicas de serviço específicas. Começamos clonando o repositório Couchbase-Kubernetes:
|
1 2 |
$git clone https://github.com/couchbase/kubernetes.git couchbase-kubernetes |
|
1 2 |
$cd couchbase-kubernetes |
Em nosso próximo blog sobre o Couchbase e o Kubernetes, abordaremos o conceito, a configuração e a execução dos controladores de serviço e de replicação para o Couchbase!