Existe um servidor usado em comum por dezenas de pessoas.
Cada um está servindo seu projeto em um contêiner,
mas quando ocorrem problemas como a reinicialização do servidor, fica difícil para o administrador lidar com esses contêineres.
Não sei se devo pedir que cada pessoa envie previamente o comando de execução do contêiner Docker para então executá-lo manualmente,
ou se devo organizar tudo com Docker Compose e entrar pasta por pasta de cada projeto para rodar compose up, entre outras possibilidades.
Gostaria de pedir conselhos sobre como, na posição de administrador, gerenciar vários contêineres.
9 comentários
Agradeço a todos que responderam. Acho que a meta deste ano deve ser a adoção do Kubernetes.
A forma mais simples é transformar os contêineres em daemons para que eles também iniciem quando o sistema operacional for iniciado.
Se for da família EL (Enterprise Linux, termo geral para a linha RHEL), é possível registrar os contêineres como serviços do
systemd. Pelo que chamam, isso se chama Quadlet.Só pela pergunta, parece que daria para resolver com
depend on,restart alwaysouunless stoped, mas acho que deve haver alguma situação difícil que não foi incluída na pergunta. Ainda assim, se forem algumas dezenas de pessoas, no fim das contas parece que você vai ter que ir para o Kubernetes.Você provavelmente conseguirá encontrar uma resposta mesmo perguntando à IA exatamente como está na pergunta.
Se houver essas informações, acho que fica mais fácil conversar.
Respondendo simplesmente com base no que você mencionou...
Não entendo por que seria necessário um comando para executar contêineres. Peça para criarem um arquivo Compose e, com base nele, o melhor é estruturar tudo para que possa subir com o mesmo comando para todos (comando do Compose).
:) Como você é o administrador, se pedir para fazerem assim, as outras pessoas vão fazer, então siga firme :)
Eu não recomendo muito o k8s, porque considero que é uma solução com um peso grande para um ambiente gerenciado por uma pessoa só.
Sempre acho que o melhor é configurar a infraestrutura da forma mais simples possível.
São 4 servidores on-premises.
Estou fazendo isso sozinho.
Depois de passar pela aprovação de segurança, faz agora 4 meses que o Docker foi adotado na empresa, e de
k8seu só conheço os conceitos. Em breve terei que implantar o HARBOR para Docker e, depois que o Harbor entrar, o Docker Hub será bloqueado. Provavelmente só eu vou ficar com acesso ao Docker Hub e, quando houver solicitação, apenas eu baixarei as imagens do Docker Hub e as enviarei para o Harbor interno da empresa.Achei irrealista tocar tudo na base do comando Compose, entrando pasta por pasta de cada projeto para dar
compose upmanualmente, então não segui por esse caminho. Em vez disso, pedi para usarem comandos Docker com caminhos absolutos, mas ultimamente não consigo tirar da cabeça que isso também é uma abordagem errada.Não basta definir a opção de reinicialização do Docker?
Nesses casos, é melhor usar Kubernetes e atribuir um contexto para cada usuário.
Também é possível restringir as permissões para que cada usuário só possa usar aquele contexto.
Use o k8s.
Também penso de forma parecida com o tujuc; acredito que introduzir
k8ssozinho, sem alguém experiente, e operá-lo de forma estável sem incidentes envolve um risco considerável.Mas, como você disse que são 4 servidores sendo usados em comum por dezenas de pessoas, a situação fica um pouco ambígua. Ainda assim, em vez de tomar como critério a quantidade de pessoas envolvidas, se o número de programas de servidor for muito grande e a complexidade estiver alta, pode valer a pena considerar aprender
k8s.Se eu estivesse na mesma situação que o autor, provavelmente melhoraria o ambiente nas etapas abaixo.
Dockerfilee um arquivodocker composepara cada serviço, de modo a garantir que eles sempre possam subir ao executar os mesmos comandos.