Kubernetes运行字节联邦学习开源框架KubeFate1.5.3版本-中篇
原创
©著作权归作者所有:来自51CTO博客作者wx58c2b58cac641的原创作品,请联系作者获取转载授权,否则将追究法律责任
前言
重点提示
1、KubeFate 1.5.0版本 目前不支持Mac系统
2、K8S不支持在虚拟机上 VMware Fusion 专业版 8.1.1运行
不要按照这篇文章使用虚拟机安装,但安装步骤是正确的
使用MiniKube部署联邦学习Fate的详细过程-上篇
我亲身实践了好久 都没能在虚拟机Centos上跑起来
即使虚拟机配置6核10G都跑不起来
这是版本不兼容导致的
我开了一台阿里云服务器8核16G内存100G的服务器
20分钟搞定
阿里云服务器
因为我是临时使用 所以开了一个按流量付费的服务器
大家也可以根据自己的情况开一周的或一个月的
部署Docker
上篇文章 具体说过(安装最新版本的docker和异常处理方式)
这里简单介绍下如何安装指定版本的docker
查看服务器支持的docker版本
yum list docker-ce --showduplicates | sort -r
安装指定版本
不要超过19.03版本
yum -y install docker-ce-3:19.03.15
启动dokcer
systemctl daemon-reload
service docker restart
systemctl enable docker.service
部署miniKube
和上篇文章安装的方式一样 不再赘述
区别1-启动方式
# image-repository 指定镜像从阿里云上下载
# alsologtostderr 该参数可以看到详细的启动日志
minikube start --vm-driver=none --image-repository=registry.aliyuncs.com/google_containers --alsologtostderr -v=8
区别2-二进制文件版本号
1.5.0是目前最新版
链接:https://pan.baidu.com/s/14Xqf01m2lNZNrFhyJaV_Kg 密码:r4ri
k8s启动成功的状态
启用ingress服务
minikube addons enable ingress
部署KubeFATE服务
解压kubefate压缩包
tar -xzf ./kubefate-k8s-1.5.0.tar.gz
查看文件情况
配置minikube
chmod +x ./kubefate && sudo mv ./kubefate /usr/bin
查看minikube版本号
下载镜像依赖包
docker load < ./kubefate-v1.2.0.docker
创建 kube-fate 的命名空间以及账号
使用网易云镜像仓库
sed 's/mariadb:10/hub.c.163.com\/federatedai\/mariadb:10/g' kubefate.yaml > kubefate_163.yaml
sed 's/registry: ""/registry: "hub.c.163.com\/federatedai"/g' cluster.yaml > cluster_163.yaml
在 kube-fate 命名空间里部署 KubeFATE 服务
kubectl apply -f ./kubefate_163.yaml
KubeFATE服务是否部署好
kubectl get all,ingress -n kube-fate
KubeFATE 的服务就已经部署好并正常运行
添加 kubefate.net 到 hosts 文件
# 在云服务器上执行
sudo -- sh -c "echo \"47.117.116.243 kubefate.net\" >> /etc/hosts"
验证是否生效
查看KubeFATE 服务版本
使用KubeFATE安装FATE
安装两联盟方,ID 分别 9999 与 10000
真实情况 这两方应该是完全独立、隔绝的组织
为了模拟现实情况 需要先为他们在Kubernetes上创建各自独立的命名空间(namespace)
创建命名空间
# 用来部署9999
kubectl create namespace fate-9999
# 用来部署10000
kubectl create namespace fate-10000
准备各自的集群配置文件
cp ./cluster_163.yaml fate-9999.yaml && cp ./cluster_163.yaml fate-10000.yaml
192.168.100.123需要替换成你的MiniKube 机器地址
安装fate集群
kubefate cluster install -f ./fate-9999.yaml
kubefate cluster install -f ./fate-10000.yaml
KubeFATE 会创建两个任务去分别部署两个FATE集群
查看任务状态
cd /home/k8s
watch kubefate cluster ls
这个步骤需要到网易云镜像仓库去下载约 10GB 的镜像
验证FATE的部署
访问集群
kubefate cluster describe b1865111-4a7d-4159-aeb9-4c482262517c
Info->dashboard里包含
9999.notebook.kubefate.net
是让数据科学家进行建模分析的平台
已经集成了FATE-Clients
9999.fateboard.kubefate.net
通过FATEBoard 来查询当前训练的状态
fate-10000的 Jupyter Notebook 和 FATEBoard 地址分别是
10000.notebook.kubefate.net
10000.fateboard.kubefate.net
在浏览器访问 FATE 集群的机器上配置相关的Host信息
# 在本地电脑上操作
sudo vim /etc/hosts
sudo -- sh -c "echo \"47.117.116.243 9999.notebook.kubefate.net\" >> /etc/hosts"
sudo -- sh -c "echo \"47.117.116.243 9999.fateboard.kubefate.net\" >> /etc/hosts"
sudo -- sh -c "echo \"47.117.116.243 10000.notebook.kubefate.net\" >> /etc/hosts"
sudo -- sh -c "echo \"47.117.116.243 10000.fateboard.kubefate.net\" >> /etc/hosts"
4个Dashboards
我是本地配置'假'域名转发通过公网访问阿里云服务器
所以会提示域名未备案
kubefate在本地启动或内网环境内 不经过公网环境 则可以访问
后记
截止目前 把K8S环境和KubeFate多方集群环境搭建起来了
后续文章介绍下 如何使用该KubeFate做联邦任务以及Fate开源框架实现原理及运行流程简介