EticaAI / aguia-pescadora

Documentação de toda pilha de soluções e de usuário do PaaS da Etica.AI. Informações do cluster Tsuru sendo configurado: [Nós: 3][CPU: 14][RAM: 32GB][Disco: 800GB SSD][Custo: < 100 BRL/mês]
https://aguia-pescadora.etica.ai
The Unlicense
1 stars 0 forks source link

Implementação de serviço de arquivos de disco no Tsuru sem uso de Kubernetes #20

Open fititnt opened 5 years ago

fititnt commented 5 years ago

Na Águia Pescadora vão precisar documentar às pessoas desenvolvedoras como é nossa recomendação para gerenciarem arquivos no disco.

Eu sei que idealmente uma das abordagens mais ideais (e que não envolvem exigir que usuários sempre usem um CDN como S3, mesmos que nós via implementação do Minio.io eventualmente tenhamos isso) poderia ser implementar até mesmo um sistema de arquivos distribuídos como até comentei em https://github.com/EticaAI/aguia-pescadora/issues/17. Porém mesmo que eu em especial consiga implementar na Águia Pescadora isso poderia ser mais complicado para pessoas conseguirem reproduzir se reusarem nossa lógica.

Então creio que vamos procurar manter as coisas simples em especial quando implicar o dia a dia de usuário.

fititnt commented 5 years ago

Nossa, quem usa Kubernetes em vez de docker diretamente com Tsuru nesse caso específico o kubernetes até já tem abstração para uma penca de sistemas de arquivos (GlusterFS e o Ceph inclusive) https://kubernetes.io/docs/concepts/storage/volumes/.

Não é nosso caso (temos 3 nós, talvez no máximo um adicional no futuro para testes.

fititnt commented 5 years ago

Tenho interesse de receber ajuda externa em (se é que é possível, mesmo que com gambiarra, que no caso eu poderia deixar pronto automatizado com Ansible) conseguir configurar o Tsuru para permitir que pelo menos uma instalação tudo em 1 para deixar preparado usar a interface cli do tsuru com os comandos de gerenciamento de volume equivalente ao que seria possível numa instalação que tenha Kubernetes.

Isto não é prioridade, tanto é que planejo ir preparando a 3.0 ser já em kubernetes ou k3s, mas se conseguir descobrir como fazer sem kubernetes com alguma ajuda externa eu já documento isto.

fititnt commented 5 years ago

Hummmmm... talvez seja bem mais simples do que eu imaginei no #17 se for usar o driver local e para 1 nó, a ponto do docker nativo já ter até integração com isto.

fititnt commented 5 years ago

Erro de primeira. Cedo ou tarde eu acho que vou acabar aprendendo Go por causa do Tsuru & Kubernetes

# Em ssh root@aguia-pescadora-foxtrot.etica.ai
# vim /etc/tsuru/tsuru.conf
volume-plans:
  local:
    docker:
        driver: local
    swarm:
        driver: local

# localhost target aguia-pescadora-foxtrot.etica.ai
tsuru team-create time-padrao
tsuru volume create volume local -p theonepool -t time-padrao -o capacity=10M
### Error: key "volume-plans:local:docker" not found

Edit 1:

Erro diferente. Talvez editar o /etc/tsuru/tsuru.conf sem reiniciar o serviço no servidor não seja suficiente.

volume-plans:
  local:
    docker:
      driver: local
    swarm:
      driver: local

# fititnt at bravo in /alligo/code/eticaai/aguia-pescadora-ansible-playbooks on git:master o [9:42:55]
$ tsuru volume-create meuvolume local -p theonepool -t time-padrao
Error: provisioner is not a volume provisioner