2016-06-07 2 views
0

Je dois créer un grand nombre de conteneurs Docker sur différents hôtes (par exemple, 50 conteneurs chacun sur 3 hôtes). Ces conteneurs ont tous la même image, la même configuration, et seule l'adresse réseau et l'ID de chaque conteneur doivent être différents (donc, fondamentalement, je veux créer un énorme réseau de conteneurs virtuels). Y a-t-il un moyen d'y parvenir? J'ai étudié des technologies comme Helios et Kubernetes, mais elles semblent ne déployer qu'un seul conteneur sur chaque agent. J'ai pensé créer juste un tas d'emplois différents dans Helios et ensuite déployer chacun d'eux à son agent, mais cela me semble un peu sale.Création de plusieurs conteneurs Docker

+1

https://docs.docker.com/swarm/ – johnharris85

Répondre

1

Pour la solution spécifique Docker, vous pouvez utiliser Swarm et Compose. Créez votre cluster Docker Swarm de 3 nœuds et changez votre environnement pour cet essaim. (Le ci-dessous suppose chaque hôte est à l'écoute sur 2375, ce qui est correct pour un réseau privé, mais vous voulez configurer TLS et passer à 2376 pour plus de sécurité.)

cat >cluster.txt <<EOF 
node1:2375 
node2:2375 
node3:2375 
EOF 
docker run -d -P --restart=always --name swarm-manager \ 
    -v ./cluster.txt:/cluster.txt \ 
    swarm manage file:///cluster.txt 
export DOCKER_HOST=$(docker port swarm-manager 2375) 

Définir votre service à l'intérieur d'un docker -compose.yml, puis exécutez docker-compose scale my-service=150. Si votre Swarm est configuré avec la stratégie de propagation par défaut, il sera réparti entre les trois hôtes en fonction du nombre de conteneurs en cours d'exécution (ou arrêtés) sur chacun d'eux.

cat >docker-compose.yml <<EOF 
my-app: 
    image: my-app 
EOF 
docker-compose scale my-app=150 

Notez que la baisse de docker-Compose sur les autres outils là-bas est qu'il ne corrige pas les pannes jusqu'à ce que vous réexécuter.

2

C'est exactement le type de cas d'utilisation pour lequel Kubernetes est bien adapté. Vous devez utiliser un Replica Set. Lors de la création de votre jeu de réplicas, vous spécifiez un modèle qui indique au système comment créer chaque instance de conteneur avec le nombre de réplicas souhaité. Il créera ensuite ce nombre de répliques dans le nombre de nœuds disponibles dans votre cluster. Un inconvénient est que par défaut, Kubernetes vous permettra seulement d'avoir ~ 100 pods/node, mais vous pouvez changer ce nombre avec un drapeau de ligne de commande si vous avez besoin de plus.

+0

Kubernetes 1.2 permet ~ 100 pods/node par défaut, ce qui devrait être suffisant dans votre cas sans avoir besoin de changer le drapeau. –

+0

Merci, mis à jour ma réponse. –