如何查看加入docker swarm集群的命令?如何更新加入token?


对于一个节点来说,如果想要加入swarm集群,需要一个加密的token.

 

更加重要的是,对于manger节点和worker节点使用的token是不同的。

 

节点,只有在加入swarm集群的时候,使用join-token。在加入集群之后,如果token发生了变化,对于节点是不会有影响。

 

更新token的好处时,新节点是不可以通过旧的token加入到集群中的。

 

接下来的内容,会分别说明,如何查看加入集群的命令,还有,如何对token进行更新.

 

1、查看worker节点加入集群的命令

 

[root@nccztsjb-node-01 ~]# docker swarm join-token worker
To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3al94n9m4rj12p9mi4prximjm9vocg2cb2tfmkx12p6fpi7wgu-3kb6gjix9gg8ton3rc2sc955s 172.20.59.76:2377

[root@nccztsjb-node-01 ~]# 

 

 

其中,是生成的加密的token

 

SWMTKN-1-3al94n9m4rj12p9mi4prximjm9vocg2cb2tfmkx12p6fpi7wgu-3kb6gjix9gg8ton3rc2sc955s

 

2、查看manager加入集群的命令

[root@nccztsjb-node-01 ~]# docker swarm join-token manager
To add a manager to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3al94n9m4rj12p9mi4prximjm9vocg2cb2tfmkx12p6fpi7wgu-8rphxicc5jnvdv9m8z8b3qg40 172.20.59.76:2377

[root@nccztsjb-node-01 ~]# 

 

 

其中,token

SWMTKN-1-3al94n9m4rj12p9mi4prximjm9vocg2cb2tfmkx12p6fpi7wgu-8rphxicc5jnvdv9m8z8b3qg40

 

发现,woker的token和manager的token是不同的。

 

 

3、仅打印token

 

使用--quiet参数

 

[root@nccztsjb-node-01 ~]# docker swarm join-token worker --quiet
SWMTKN-1-3al94n9m4rj12p9mi4prximjm9vocg2cb2tfmkx12p6fpi7wgu-3kb6gjix9gg8ton3rc2sc955s
[root@nccztsjb-node-01 ~]# 
[root@nccztsjb-node-01 ~]# 
[root@nccztsjb-node-01 ~]# docker swarm join-token manager --quiet
SWMTKN-1-3al94n9m4rj12p9mi4prximjm9vocg2cb2tfmkx12p6fpi7wgu-8rphxicc5jnvdv9m8z8b3qg40
[root@nccztsjb-node-01 ~]# 

 

 

token是加入的集群的秘密的凭证,需要对token进行严格的保密处理。

 

如果节点的加入token被泄露,其他人可以将节点加入到集群中,那么就可能会有task被运行到节点上,进而对应用上的数据进行窥视,如果是manager的加入token被泄露了,问题就更加的严重了,整个集群的控制权都被获取到了,那时,集群的处境也是极其危险的。

 

那么,在什么情况下,需要更新加入 token?

 

4、何时更新加入token

 

列出几个场景:

 

  • 如果token存放在了 版本控制系统,如git上,并且在日志或者聊天中打印了出来
  • 如果怀疑某个节点被入侵了
  • 如果想保证,没有新节点加入集群,或者加入集群时,使用一个最新的token

 

此外,更加重要的是,为了保证token的安全性,建议,定期的更新token,比如6个月更新一次。

 

5、生成新的加入token

 

执行下面的命令,使得旧的token失效,与此同时,生成一个新的token

 

更新worker的加入token

[root@nccztsjb-node-01 ~]# docker swarm join-token --rotate worker
Successfully rotated worker join token.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3al94n9m4rj12p9mi4prximjm9vocg2cb2tfmkx12p6fpi7wgu-7vm6upgpiu6m37xrddrmtse0t 172.20.59.76:2377

[root@nccztsjb-node-01 ~]# 

 

 

 

更新manager的加入token

[root@nccztsjb-node-01 ~]# docker swarm join-token --rotate manager
Successfully rotated manager join token.

To add a manager to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3al94n9m4rj12p9mi4prximjm9vocg2cb2tfmkx12p6fpi7wgu-5gjb9x4uloj5a6jclb8g8od2l 172.20.59.76:2377

[root@nccztsjb-node-01 ~]# 

 

 

 

执行命令之后,旧的加入token失效,生成新的加入token。

 

试试原来的加入token,还能不能用了?

docker swarm join --token SWMTKN-1-3al94n9m4rj12p9mi4prximjm9vocg2cb2tfmkx12p6fpi7wgu-3kb6gjix9gg8ton3rc2sc955s 172.20.59.76:2377

 

 

当然不能了,执行了命令,报错:

 

[root@nccztsjb-node-05 ~]# docker swarm join --token SWMTKN-1-3al94n9m4rj12p9mi4prximjm9vocg2cb2tfmkx12p6fpi7wgu-3kb6gjix9gg8ton3rc2sc955s 172.20.59.76:2377
Error response from daemon: rpc error: code = InvalidArgument desc = A valid join token is necessary to join this cluster
[root@nccztsjb-node-05 ~]# 

 

 

使用最新的加入token,再试试

 docker swarm join --token SWMTKN-1-3al94n9m4rj12p9mi4prximjm9vocg2cb2tfmkx12p6fpi7wgu-7vm6upgpiu6m37xrddrmtse0t 172.20.59.76:2377

 

 
[root@nccztsjb-node-05 ~]#  docker swarm join --token SWMTKN-1-3al94n9m4rj12p9mi4prximjm9vocg2cb2tfmkx12p6fpi7wgu-7vm6upgpiu6m37xrddrmtse0t 172.20.59.76:2377
This node joined a swarm as a worker.
[root@nccztsjb-node-05 ~]# 

 

 

完美!

 

OK,到这里,我们介绍了:

 

  • 查看worker、manager加入集群的命令
  • 什么时候,需要更新加入的token
  • 如何生成加入的token

 

posted @ 2022-09-13 10:46  Zhai_David  阅读(861)  评论(0编辑  收藏  举报