linux:docker_postgresql

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
linux:docker_postgresql [2017/05/31 17:40]
1891982 [Configurando máquinas]
linux:docker_postgresql [2021/08/25 10:33] (atual)
Linha 12: Linha 12:
  
 <code> <code>
-sudo vim /etc/init.d/resolv.conf+sudo vim /etc/init.d/resolv.conf
 </code> </code>
  
Linha 25: Linha 25:
  
 <code> <code>
-sudo vim /etc/network/interfaces+sudo vim /etc/network/interfaces
 </code> </code>
  
Linha 33: Linha 33:
 dns-nameservers 8.8.8.8 dns-nameservers 8.8.8.8
 dns-nameservers 8.8.4.4 dns-nameservers 8.8.4.4
 +</code>
 +
 +==== Instalando e configurando o Docker ====
 +
 +* Adicione a chave do repositório Docker
 +
 +<code>
 +$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
 +</code>
 +
 +* Adicione o repositório
 +
 +<code>
 +$ sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
 +</code>
 +
 +* Adicione o repositório
 +
 +<code>
 +$ sudo apt-get update
 +</code>
 +
 +* Instale o pacote do docker
 +
 +<code>
 +$ sudo apt-get install -y docker-engine
 +</code>
 +
 +* Adicionando o usuário atual do sistema ao grupo que pode usar o docker sem sudo
 +
 +<code>
 +$ sudo usermod -aG docker $(whoami)
 +</code>
 +
 +==== Instalando Docker Machine ====
 +
 +* Obtenha o script
 +
 +<code>
 +$ wget https://github.com/docker/machine/releases/download/v0.6.0/docker-machine-$(uname -s)-$(uname -m)
 +</code>
 +
 +* Troque o nome do script
 +
 +<code>
 +$ mv docker-machine-Linux-x86_64 docker-machine
 +</code>
 +
 +* Dando permissão de executável
 +
 +<code>
 +$ chmod +x docker-machine
 +</code>
 +
 +* Movendo o script para ficar disponível para os usuários
 +
 +<code>
 +$ sudo mv docker-machine /usr/local/bin
 +</code>
 +
 +==== Criando e configurando o cluster com o Swarm ====
 +
 +* Inicialize o cluster Swarm na máquina primária, no nosso caso, pgpool.ifce.edu.br
 +
 +<code>
 +$ sudo docker swarm init --advertise-addr <IP_VALIDO_DA_MAQUINA>
 +</code>
 +
 +* Obtenha o comando para adicionar novos nós manager
 +
 +<code>
 +$ sudo docker swarm join-token manager
 +</code>
 +
 +* Copie o código impresso na tela e execute-o nas outras máquinas. O código será semelhante ao código abaixo:
 +
 +<code>
 +docker swarm join \
 +    --token <TOKEN_MANAGER> \
 +    <IP_VALIDO_DA_MAQUINA_LEADER>:2377
 +</code>
 +
 +* Verifique se o cluster está ativo e com todas as máquinas adicionadas. Execute o comando abaixo:
 +
 +<code>
 +$ sudo docker node ls
 +
 +A resposta será algo parecido com o texto abaixo:
 +
 +ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS
 +xxxxxxxxxxxxxxxxxxxxxxxxx     postgres-master     Ready               Active              Reachable
 +xxxxxxxxxxxxxxxxxxxxxxxxx     postgres-slave      Ready               Active              Reachable
 +xxxxxxxxxxxxxxxxxxxxxxxxx *   pgpool              Ready               Active              Leader
 +</code>
 +
 +
 +==== Baixando o repositório git do projeto postgres-docker-cluster ====
 +
 +* Gere a chave ssh de apenas da máquina pgpool.ifce.edu.br para ser adicionada no projeto do gitlab
 +
 +<code>
 +$ ssh-keygen -t rsa -C "suporte@ifce.edu.br" -b 4096
 +</code>
 +
 +* Imprima a chave gerada e copie seu conteúdo para as chaves de deploy no gitlab em: Project > Settings > Repository. Use o comando abaixo para imprimir a chave:
 +
 +<code>
 +$ cat ~/.ssh/id_rsa.pub
 +</code>
 +
 +* Clone o projeto apenas na máquina pgpool
 +
 +<code>
 +$ git clone git@gitlab.ifce.edu.br:dgti/postgres-docker-cluster.git
 +</code>
 +
 +==== Fazer deploy dos serviços no Cluster Swarm usando DockerCompose ====
 +
 +* Liberação de portas no firewall de entrada e saída entre as 3 máquinas do cluster
 +
 +Porta **TCP** **2377** para gerenciamento de comunicação entre os nós do cluster
 +
 +Portas **TCP** e **UDP** **7946** para comunicação entre os nós
 +
 +Porta **UDP** **4789** para o tráfego de rede
 +
 +Portas **5440** e **5441** para conexão do postgres entre os nós
 +
 +Porta **9898** para conexão de gerenciamento PCP do postgres
 +
 +* Suba os serviços [Apenas na máquina pgpool]
 +
 +<code>
 +$ cd postgres-docker-cluster
 +$ docker stack deploy --compose-file=docker-compose.yml postgres
 +</code>
 +
 +==== Comandos úteis ====
 +
 +* Fazer desassociação de um nó do cluster de forma manual caso o comando docker swarm leave -f não funcione:
 +
 +<code>
 +sudo service docker stop
 +sudo rm -Rf /var/lib/docker/swarm
 +sudo service docker start
 </code> </code>
  • linux/docker_postgresql.1496263210.txt.gz
  • Última modificação: 2021/08/25 10:33
  • (edição externa)