文章目录
毕设在搞联邦学习相关的东西,用到了Kubefate,前前后后重装了好多次虚拟机,终于实现了 两台Ubuntu 16.04 的Kubefate docker-compose部署,现在把部署的坎坷过程记录下来,供大家参考。
一、准备工作
1)虚拟机
VMware新建两台Ubuntu 16.04的虚拟机,注意要映射到不同的ISO镜像文件!虚拟机的大概配置如下:
为了工作方便,关掉了自动锁屏:
2)两台机器安装ssh
两台机器都执行下面的指令:
sudo apt-get update
sudo apt-get upgrade
耐心等待之后,开始安装ssh(两台机器都要装):
sudo apt-get install openssh-server
安装完成之后,输入指令查看ssh运行状态:
ps -e | grep ssh
相关的一些命令:
启动ssh
/etc/init.d/ssh start
重启ssh
service sshd restart
关闭ssh
service sshd stop
测试ssh连接
安装完成之后测试机器A是否能够通过ssh连接到机器B的root。步骤如下:
-
查看各机器的ip地址
-
机器A(ip是132)输入指令:
ssh root@192.168.233.131
输入yes之后发生错误:
解决方法:机器B中输入
sudo gedit /etc/ssh/sshd_config
修改文件中的:
PermitRootLogin prohibit-password
改为:
PermitRootLogin yes
修改保存之后重启B的ssh服务。
由于root初始密码是随机生成的,所有要修改机器B的root密码。
B中输入指令,按提示操作即可。
sudo passwd
-
设置免密登录(可选)
参考文章:SSH 三步解决免密登录
在这里是机器A登录机器B,A中输入指令生成公私钥:
ssh-keygen
A中输入指令上传公钥到B:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.233.131
A中输入指令测试ssh:(131是机器B的ip)
ssh root@192.168.233.131
同样道理,修改A的root密码,修改A中sshd_config文件,重启A的ssh服务,然后将公钥上传到A(修改指令的ip地址即可,不用重新ssh-keygen),完成了A的免密登录设置。
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.233.132
3)安装git
AB都要运行
sudo apt-get install git
4)安装Docker
注意:AB两台机器都要运行
1、更新apt-get包
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
2、添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3、设置稳定版仓库
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"
5)安装Docker Engine-Community
注意:AB两台机器都要运行
1、更新 apt 包索引,安装最新版本的 Docker Engine-Community 和 containerd
sudo apt-get update
报错:
解决方法,将key复制下来,输入指令:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8
参考文章:更新linux时候提示无法“由于没有公钥,无法验证下列签名 ***”的解决方案
再次运行sudo apt-get update
,接着输入指令:
sudo apt-get install docker-ce docker-ce-cli containerd.io
2、测试docker是否安装成功
sudo docker run hello-world
安装成功截图:
6)安装Docker Compose
运行以下命令以下载 Docker Compose 的当前稳定版本
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
将可执行权限应用于二进制文件
sudo chmod +x /usr/local/bin/docker-compose
测试是否安装成功
docker-compose --version
成功截图:
二、环境搭建
这里我们是机器A做部署机,把fate集群部署到A、B上,以下操作在A中完成:
去GitHub下载项目release包,官方下载地址:
下载完后提取压缩包,进入修改docker-deploy目录下的parties.conf文件,修改用户为root,修改对应的ip地址,如图:
修改docker-deploy目录下的.env文件,给RegistryURI
参数填入以下字段,使用国内镜像网站:
RegistryURI=hub.c.163.com
生成部署文件:
sudo bash generate_config.sh
执行部署脚本:
sudo bash docker_deploy.sh all
部署成功的截图:
三、测试demo,验证部署
FATE启动成功之后,我们通过验证toy_example示例来检测
选择192.168.233.132这个A节点验证,使用以下命令验证:
#进入python组件容器内部
docker exec -it confs-10000_python_1 bash
#toy_example目录
cd /data/projects/fate/examples/toy_example
#验证
python run_toy_example.py 10000 9999 1
运行中访问192.168.233.132:8080
部署成功!
参考文档: