Replicando pastas no cluster do docker

1

Portanto, sou muito novo no docker e, em particular, no enxame docker. Acabei de instalar o jenkins e quero que ele funcione em todos os nós, independentemente de ele ser executado com apenas uma instância em uma máquina ou 10 instâncias em 5 máquinas.

O problema com isso é claro "como os jenkins sabem quais definições de compilação eu tenho". Há provavelmente uma maneira específica de resolver isso para Jenkins, mas vejo-me tendo problemas semelhantes no futuro. Então me fez pensar, existe alguma maneira fácil de configurar a replicação no sistema de arquivos / volume? preferencialmente em uma configuração mestre / escravo que funcionaria em um ambiente de enxame docker?

    
por munHunger 24.01.2018 / 20:58

1 resposta

0

Mesmo se você tivesse uma solução mágica de replicação de dados, não resolveria o problema completamente. Note que não sou especialista em Jenkins.

Parece que você precisa de persistência de dados para o seu contêiner Jenkins.

Existem pelo menos duas maneiras de fazer com que um aplicativo com necessidades de dados persistentes (como um banco de dados, Jenkins, etc.) funcione em um cluster de contêiner:

  1. Use o agrupamento interno do aplicativo. Jenkins pode fazer multi-masterização? Fazer esse tipo de HA não muda muito em um orquestrador de contêineres. Se o aplicativo (Jenkins) suportar HA, geralmente é melhor fazer isso. Assim como nas réplicas do Mongodb ou nos clusters do elasticsearch, é melhor criar serviços separados para o swarm com um contêiner cada e fazer com que eles se conectem uns aos outros como fariam antes de você usar o Swarm.

  2. Use o Swarm para armazenar os dados persistentes e fazer com que ele recrie contêineres com falha. Armazene os dados do Jenkins em volumes do Docker com reconhecimento do Swarm. Isso exigiria armazenamento compartilhado e um plug-in de volume, como o REX-Ray , ou qualquer um deles em store.docker.com para manter tudo o que precisa ser conectado a uma instância do Jenkins para que funcione. Em seguida, entre os volumes docker, Swarm configs e Swarm secrets, quando um serviço que executa um contêiner Jenkins morre ou precisa recriar o contêiner, ele garante que os volumes / configs / secrets estejam em qualquer nó da tarefa (container) lançar em. Isso não é verdade HA, mas está próximo.

por 25.01.2018 / 04:03