完成节点部署前的准备后,可参考本文内容部署隐私计算节点。
目录
集群组网
说明
如果您使用的是单机模式,请忽略此步骤。
集群化部署节点有助于解决训练节点单机性能不足的问题,可以提高并行任务数。其中,多副本模式有助于提高预测节点的稳定性。使用 docker-compose 时,同一宿主机启动的容器网络是互通的,但不同宿主机的容器网络是隔离的状态。因此,为了保证宿主机中的容器可以互相访问,需要使用网络插件对容器进行组网,此时建议您使用 Docker 内置的 Overlay Network 进行组网。本章介绍了集群组网的操作步骤。
环境检查
查看当前防火墙规则,确认集群节点间互相开放以下端口:
-
TCP 协议的 2377 端口:用于管理集群通信。
-
TCP 协议的 7946 端口:用于节点之间通信。
-
UDP 协议的 7946 端口:用于节点之间通信。
-
UDP 协议的 4789 端口:用于覆盖网络流量。
Overlay 组网
-
登录集群中一台节点客户端,执行以下命令,将当前节点配置成 Manager 节点。
docker swarm init
系统返回类似如下信息,获取并记录 Token 值。若丢失 Token 值,可执行
docker swarm join-token worker
命令,重新获取 Token 值。Swarm initialized: current node (zwjcr9w3zr9a72oxw39j7xxxx) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-3nuu8r2s3z9eq2o3tl47wjgacpfuxpg64eqsc8wb5t8buijzbx-d2qw8h52loc0ithrvnosxxxxx 172.xx.xx.12:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
-
执行以下命令,创建 Overlay 网络,并将网段范围设置为 11.0.0.0/8。
docker network create -d overlay --subnet 11.0.0.0/8 --attachable nueva-exchange
-
登录集群中另一台节点客户端,执行以下命令,将当前节点配置成 Worker 节点。${TOKEN} 为本节步骤 1 获取到的 Token 值。
docker swarm join --token ${TOKEN}
-
解压节点部署软件包,进入解压后的目录,执行以下命令,运行
install.sh
脚本文件。./install.sh
-
执行以下命令,启动容器并发现网络。
IMAGE=`docker image ls | head -2 | tail -1 | awk '{print $1":"$2}'` echo $IMAGE docker run -dit --rm --net nueva-exchange $IMAGE sh
-
执行以下命令,查看当前节点的网络列表。
docker network ls
系统返回类似如下信息,即 NAME 为 nueva-exchange,确认成功加入 Overlay 网络。
NETWORK ID NAME DRIVER SCOPE vdqud8syxxxx nueva-exchange overlay swarm
节点的配置与安装
以下是安装节点的操作步骤。当您首次部署节点时,请参考本章内容安装节点。
-
登录节点客户端,解压节点部署软件包。
-
进入解压后的目录,执行以下命令,安装节点。执行脚本文件后,相关安装文件会被复制到
~/nueva
目录中。./install.sh
-
执行以下命令,进入
~/nueva
安装目录。cd ~/nueva
-
执行以下命令,编辑
.env
文件,配置环境变量,然后保存并退出。vim .env
以下是需要配置的环境变量及其说明:
-
NAMESPACE:当前节点标识,请参见 基本配置 获取节点标识。
-
TOKEN:当前节点身份认证 Token,请参见 基本配置 获取 Token。
-
CENTRAL_GATEWAY:中心节点网关地址。
-
GATEWAY_HTTP_PORT:网关对外 HTTP 访问端口,默认为 80。
-
GATEWAY_HTTPS_PORT:网关对外 HTTPS 访问端口,默认为 443。
-
GATEWAY_GRPCS_PORT:网关对外 GRPCS 访问端口,默认为 1443。
-
GATEWAY_INTERNAL_PORT:网关本地 HTTP 访问端口,默认为 1080。
-
-
执行以下命令,确认存在指定密钥对,其中私钥名称为
server.key
,私钥用于节点间的身份认证和授权。ls ~/nueva/gateway/conf/
-
记录公钥内容,并将公钥内容上传到管理控制台,进行节点间的授权操作。如果采用集群模式,请务必确保每个实例的 RSA 私钥一致,否则会发生授权失败的问题。若获取公钥失败,请执行以下命令,获取 RSA 公钥。
openssl rsa -in ~/nueva/gateway/conf/server.key -RSAPublicKey_out | base64 | tr -d "\n"