0
点赞
收藏
分享

微信扫一扫

【联邦学习】kubefate安装(docker-compose版)

概念介绍

联邦学习:(待补充)
fate介绍:(待补充)
kubefate介绍:分布式版fate
官网:https://fate.fedai.org/
github:https://github.com/FederatedAI/

安装

背景

  • 本文采用docker-compose安装。
  • 安装机器为阿里云,相关加速配置都为阿里云中的配置。
  • 阿里云机器之间可以内网连接。
  • 实例开通公网权限,可以访问开通的接口。
  • 在安装包中有相关文档,遇事不决可以参考。README.md(英文版),README_zh.md(中文版)
  • 机器分为两类,操作机安装机。操作机用于运行安装脚本,给集群内机器安装相关组件;安装机为实际运行kubefate的机器
  • 以下端口需要用到,请提前在机器上将其保留:8000、8350、8059、20000、8080、9360、9370、4670、4671、3306
  • 本文使用root部署,略显不规范。建议使用普通用户

环境

本次安装版本为1.10,需要的背景如下

  1. 3台主机(物理机或者虚拟机,都是Centos7系统)。本文中安装使用3台机器(1host+2guest),也可以安装2台机器(1host+1guest)。机器配置推荐为8核16G内存。过于简陋的配置容易造成子服务启动异常。
  2. 所有主机安装Docker 版本 : 18+。Centos安装相关命令如下
	wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
	yum -y install docker-ce
  1. 安装Docker-Compose,版本: 1.24+。安装命令如下
	 curl -SL https://github.com/docker/compose/releases/download/v2.1.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

安装步骤

如未特殊说明,以下都是在操作机上进行。操作机最好能提前配置免密登录到安装机。配置方法

ssh-keygen
ssh-copy-id root@IP1
ssh-copy-id root@IP2
ssh-copy-id root@IP3
  1. 下载部署压缩包。 releases页面,从中选择1.10.0版本
  2. 压缩包,可以得到一个目录docker-deploy
  3. 镜像加速(可选)。由于需要下载的总镜像约18G,有必要在下载中加速。可以使用阿里云自带的加速方案,也可以配置163的hub。方法为修改docker-deploy下.env文件,修改RegistryURI参数:
    RegistryURI=hub.c.163.com
    
  4. 编辑/docker-deploy/parties.conf,修改资源信息
    #!/bin/bash
    
    user=root
    dir=/data/projects/fate
    party_list=(10000 9999 9998)
    party_ip_list=(IP1 IP2 IP3)
    serving_ip_list=(IP1 IP2 IP3)
    
    # Engines:
    # Computing : Eggroll, Spark, Spark_local
    computing=Eggroll
    # Federation: Eggroll(computing: Eggroll), Pulsar/RabbitMQ(computing: Spark/Spark_local)
    federation=Eggroll
    # Storage: Eggroll(computing: Eggroll), HDFS(computing: Spark), LocalFS(computing: Spark_local)
    storage=Eggroll
    # Algorithm: Basic, NN
    algorithm=Basic
    # Device: IPCL, CPU
    device=IPCL
    
    # spark and eggroll
    compute_core=4
    
    # default
    exchangeip=
    
    # modify if you are going to use an external db
    mysql_ip=mysql
    mysql_user=fate
    mysql_password=fate_dev
    mysql_db=fate_flow
    
    name_node=hdfs://namenode:9000
    
    # Define fateboard login information
    fateboard_username=admin
    fateboard_password=admin
    
    # Define serving admin login information
    serving_admin_username=admin
    serving_admin_password=admin
    
    # Define notebook login information
    notebook_hashed_password=
    
  5. 执行脚本
    bash ./generate_config.sh          # 生成部署文件
    bash ./docker_deploy.sh all        # 在各安装机上部署FATE
    
    第二条命令初次执行时会耗时很长,因为需要下载镜像。需要耐心等待。
    安装脚本本质上是将docker-compose脚本放到远程安装机并拉起。
    执行完成后可以登录到安装机上敲docker ps查看是否有8个以上容器在运行,如果是就表示安装成功。
  6. 验证部署。登录IP1机器进行验证
    $ docker exec -it confs-10000_client_1 bash                        
    $ flow test toy --guest-party-id 10000 --host-party-id 9999       
    
    如果运行没有报错则表示安装成功。
  7. 登录fateboard查看状态。假设IP1的外网地址为IP1-OUT,可以登录其外网地址http://IP1-OUT:8080,收入用户名密码admin/admin,点击右上角JOBS,可以看到toy任务运行结果
举报

相关推荐

0 条评论