mirror of https://github.com/docker/docs.git
				
				
				
			Address feedback about placement constraints and prefs (#5101)
This commit is contained in:
		
							parent
							
								
									cfc6020a0a
								
							
						
					
					
						commit
						6e2ebea106
					
				|  | @ -501,7 +501,15 @@ placement of services on different nodes. | |||
|   limitations into account. | ||||
| 
 | ||||
|   Unlike constraints, placement preferences are best-effort, and a service will | ||||
|   not fail to deploy if no nodes can satisfy the preference. | ||||
|   not fail to deploy if no nodes can satisfy the preference. If you specify a | ||||
|   placement preference for a service, nodes that match that preference are | ||||
|   ranked higher when the swarm managers decide which nodes should run the | ||||
|   service tasks. Other factors, such as high availability of the service, | ||||
|   will also factor into which nodes are scheduled to run service tasks. For | ||||
|   example, if you have N nodes with the rack label (and then some others), and | ||||
|   your service is configured to run N+1 replicas, the +1 will be scheduled on a | ||||
|   node that doesn't already have the service on it if there is one, regardless | ||||
|   of whether that node has the `rack` label or not. | ||||
| 
 | ||||
| 
 | ||||
| #### Replicated or global services | ||||
|  | @ -509,7 +517,9 @@ placement of services on different nodes. | |||
| Swarm mode has two types of services: replicated and global. For replicated | ||||
| services, you specify the number of replica tasks for the swarm manager to | ||||
| schedule onto available nodes. For global services, the scheduler places one | ||||
| task on each available node. | ||||
| task on each available node that meets the service's | ||||
| [placement constraints](#placement-constraints) and | ||||
| [resource requirements](#reserve-cpu-or-memory-for-a-service). | ||||
| 
 | ||||
| You control the type of service using the `--mode` flag. If you don't specify a | ||||
| mode, the service defaults to `replicated`. For replicated services, you specify | ||||
|  | @ -568,8 +578,11 @@ the following example, the service only runs on nodes with the | |||
| [label](engine/swarm/manage-nodes.md#add-or-remove-label-metadata) | ||||
| `region` set to `east`. If no appropriately-labelled nodes are available, | ||||
| deployment will fail. The `--constraint` flag uses an equality operator | ||||
| (`==` or `!=`). It is possible that all services will run on the same node, or | ||||
| each node will only run one replica, or that some nodes won't run any replicas. | ||||
| (`==` or `!=`). For replicated services, it is possible that all services will | ||||
| run on the same node, or each node will only run one replica, or that some nodes | ||||
| won't run any replicas. For global services, the service will run on every node | ||||
| that meets the placement constraint and any | ||||
| [resource requirements](#reserve-cpu-or-memory-for-a-service). | ||||
| 
 | ||||
| ```bash | ||||
| $ docker service create \ | ||||
|  | @ -584,12 +597,12 @@ file. | |||
| 
 | ||||
| If you specify multiple placement constraints, the service will only deploy onto | ||||
| nodes where they are all met. The following example limits the service to run on | ||||
| nodes with `region` set to `east` and where `type` is not set to `devel`: | ||||
| all nodes where `region` is set to `east` and `type` is not set to `devel`: | ||||
| 
 | ||||
| ```bash | ||||
| $ docker service create \ | ||||
|   --name my-nginx \ | ||||
|   --replicas 5 \ | ||||
|   --global \ | ||||
|   --constraint region==east \ | ||||
|   --constraint type!=devel \ | ||||
|   nginx | ||||
|  | @ -615,6 +628,8 @@ Placement preferences are not strictly enforced. If no node has the label | |||
| you specify in your preference, the service will be deployed as though the | ||||
| preference were not set. | ||||
| 
 | ||||
| > Placement preferences are ignored for global services. | ||||
| 
 | ||||
| The following example sets a preference to spread the deployment across nodes | ||||
| based on the value of the `datacenter` label. If some nodes have | ||||
| `datacenter=us-east` and others have `datacenter=us-west`, the service will be | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue