Replace secrets with join tokens
Implement the proposal from https://github.com/docker/docker/issues/24430#issuecomment-233100121 Removes acceptance policy and secret in favor of an automatically generated join token that combines the secret, CA hash, and manager/worker role into a single opaque string. Adds a docker swarm join-token subcommand to inspect and rotate the tokens. Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com> Upstream-commit: 2cc5bd33eef038bf5721582e2410ba459bb656e9 Component: engine
This commit is contained in:
@ -14,55 +14,54 @@ parent = "smn_cli"
|
||||
```markdown
|
||||
Usage: docker swarm join [OPTIONS] HOST:PORT
|
||||
|
||||
Join a Swarm as a node and/or manager
|
||||
Join a swarm as a node and/or manager
|
||||
|
||||
Options:
|
||||
--ca-hash string Hash of the Root Certificate Authority certificate used for trusted join
|
||||
--help Print usage
|
||||
--listen-addr value Listen address (default 0.0.0.0:2377)
|
||||
--manager Try joining as a manager.
|
||||
--secret string Secret for node acceptance
|
||||
--token string Token for entry into the swarm
|
||||
```
|
||||
|
||||
Join a node to a Swarm cluster. If the `--manager` flag is specified, the docker engine
|
||||
targeted by this command becomes a `manager`. If it is not specified, it becomes a `worker`.
|
||||
Join a node to a swarm. The node joins as a manager node or worker node based upon the token you
|
||||
pass with the `--token` flag. If you pass a manager token, the node joins as a manager. If you
|
||||
pass a worker token, the node joins as a worker.
|
||||
|
||||
### Join a node to swarm as a manager
|
||||
|
||||
The example below demonstrates joining a manager node using a manager token.
|
||||
|
||||
```bash
|
||||
$ docker swarm join --secret 4ao565v9jsuogtq5t8s379ulb --manager --listen-addr 192.168.99.122:2377 192.168.99.121:2377
|
||||
This node joined a Swarm as a manager.
|
||||
$ docker swarm join --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2 --listen-addr 192.168.99.122:2377 192.168.99.121:2377
|
||||
This node joined a swarm as a manager.
|
||||
$ docker node ls
|
||||
ID HOSTNAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS LEADER
|
||||
dkp8vy1dq1kxleu9g4u78tlag * manager2 Accepted Ready Active Reachable
|
||||
dvfxp4zseq4s0rih1selh0d20 manager1 Accepted Ready Active Reachable Yes
|
||||
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
|
||||
dkp8vy1dq1kxleu9g4u78tlag * manager2 Ready Active Reachable
|
||||
dvfxp4zseq4s0rih1selh0d20 manager1 Ready Active Leader
|
||||
```
|
||||
|
||||
A cluster should only have 3-7 managers at most, because a majority of managers must be available
|
||||
for the cluster to function. Nodes that aren't meant to participate in this management quorum
|
||||
should join as workers instead. Managers should be stable hosts that have static IP addresses.
|
||||
|
||||
### Join a node to swarm as a worker
|
||||
|
||||
The example below demonstrates joining a worker node using a worker token.
|
||||
|
||||
```bash
|
||||
$ docker swarm join --secret 4ao565v9jsuogtq5t8s379ulb --listen-addr 192.168.99.123:2377 192.168.99.121:2377
|
||||
This node joined a Swarm as a worker.
|
||||
$ docker swarm join --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx --listen-addr 192.168.99.123:2377 192.168.99.121:2377
|
||||
This node joined a swarm as a worker.
|
||||
$ docker node ls
|
||||
ID HOSTNAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS LEADER
|
||||
7ln70fl22uw2dvjn2ft53m3q5 worker2 Accepted Ready Active
|
||||
dkp8vy1dq1kxleu9g4u78tlag worker1 Accepted Ready Active Reachable
|
||||
dvfxp4zseq4s0rih1selh0d20 * manager1 Accepted Ready Active Reachable Yes
|
||||
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
|
||||
7ln70fl22uw2dvjn2ft53m3q5 worker2 Ready Active
|
||||
dkp8vy1dq1kxleu9g4u78tlag worker1 Ready Active Reachable
|
||||
dvfxp4zseq4s0rih1selh0d20 * manager1 Ready Active Leader
|
||||
```
|
||||
|
||||
### `--ca-hash`
|
||||
|
||||
Hash of the Root Certificate Authority certificate used for trusted join.
|
||||
|
||||
### `--listen-addr value`
|
||||
|
||||
The node listens for inbound Swarm manager traffic on this IP:PORT
|
||||
The node listens for inbound swarm manager traffic on this IP:PORT
|
||||
|
||||
### `--manager`
|
||||
|
||||
Joins the node as a manager
|
||||
|
||||
### `--secret string`
|
||||
### `--token string`
|
||||
|
||||
Secret value required for nodes to join the swarm
|
||||
|
||||
|
||||
Reference in New Issue
Block a user