前言
重點提示
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版本号
kubefate version
下載下傳鏡像依賴包
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"
驗證是否生效
ping -c 2 kubefate.net
檢視KubeFATE 服務版本
kubefate version
使用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
- fate-9999.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裡包含
- Jupyter Notebook 的通路位址
9999.notebook.kubefate.net
是讓資料科學家進行模組化分析的平台
已經內建了FATE-Clients
- FATEBoard 的通路位址
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"
我是本地配置'假'域名轉發通過公網通路阿裡雲伺服器
是以會提示域名未備案
kubefate在本地啟動或内網環境内 不經過公網環境 則可以通路
後記
截止目前 把K8S環境和KubeFate多方叢集環境搭建起來了
後續文章介紹下 如何使用該KubeFate做聯邦任務以及Fate開源架構實作原理及運作流程簡介