2017-08-02 2 views
0

Je suis nouveau à docker et donc j'ai ce doute naïf dans mon esprit. Je veux que chaque fois que je crée un service, il soit créé sur un nœud spécifique, mais si je le redimensionne, il devrait être étendu à d'autres nœuds présents dans le docker swarm. Je connais --mode global et --constraints node.hostname! = Node-1. Mais cela ne résout pas mon problème. Laissez-moi si ma question n'est pas claire, je vais essayer de l'expliquer d'une meilleure manière.Comment créer un service docker sur un nœud spécifique mais le mettre à l'échelle d'autres nœuds dans l'essaim?

+0

@TarunLalwani j'ai essayé et cela a fonctionné! Merci Monsieur! –

Répondre

1

Vous devez utiliser placement-pref et avoir deux groupes, un pour le nœud sur lequel vous voulez l'exécuter, puis pour les autres nœuds d'un autre groupe.

$ docker service create \ 
    --replicas 1 \ 
    --name myservice \ 
    --placement-pref 'spread=node.labels.main_machine' \ 
    --placement-pref 'spread=node.labels.extended_machines' \ 
    <yourimage> 

Maintenant, votre premier irait main_machine et ceux mis à l'échelle irait à extended_machines

Voir l'url https://docs.docker.com/engine/reference/commandline/service_create/#specify-service-placement-preferences-placement-pref

+0

A travaillé comme le charme! Merci! :) –