Este é um pouco teórico, mas por favor, tenha paciência comigo.
Atualmente tenho um servidor rodando alguns containers Docker (4 ou 5, dependendo do dia e horário). Pretendo adicionar outro, assim como o primeiro, e talvez até um terceiro.
Agora, minha pergunta é a seguinte: se chegar a hora de eu ter 15 contêineres para gerenciar, em vez de 5, há algum mérito em usar o Google Kubernetes?
Além disso, existe um fluxo de trabalho 'oficial', ou pelo menos 'definitivo', para migrar de contêineres Docker para 'pods', a unidade nativa do Kubernetes. Antes que você pergunte, sei que os pods são feitos de contêineres (às vezes até um). Meu principal problema aqui é que os 'dockerfiles' são completamente diferentes das configurações do pod.
Alguma ideia?
Se você executar contêineres em um único servidor usando o daemon do Docker e sua API remota parece apropriado.
Se você precisar executar contêineres em mais de um servidor, é aí que soluções de orquestração como Kubernetes , Docker swarm , Fleet , Mesos , Geard se tornam úteis.
Porque eles têm propósitos diferentes:
Dockerfile
especifica como construir uma imagem de container a partir de uma árvore de fontespod.yaml
define como agendar (imagem, linha de comando, volumes, porta) um conjunto de contêineres colocalizados (compartilhando espaço de nomes de rede e volumes) em um dos nós de seu cluster.Você pode ver os pods como uma forma de especificar declarativamente um conjunto de
docker run --net=container:... -v ... -p ...
comandos.Existe uma pequena ferramenta em kubernetes/contrib chamada podex que permite gerar um manifesto de pod a partir de metadados de imagem armazenados no registro público.
A resposta de @proppy está correta: One está trabalhando apenas para um único servidor.
Tive a mesma reação inicial, mas na verdade você pode ter vários serviços e pods em um único arquivo (separado por
---
). Dessa forma, você ainda tem 1 serviço + 1 pod por contêiner em geral, mas isso não é tão ruim.Você também tem que nomear um monte de coisas mais do que no docker-compose (às vezes eu sinto que é mais do que necessário). Depois de aprender qual nome importa onde, você ficará bem e a manutenção dos arquivos não será muito mais difícil.
A implantação é IMO muito mais pesada, mas, novamente, é distribuída, e também está chegando um tipo de pod de implantação que deve simplificar as atualizações (atualmente como extensão beta na v1.1).