天天看點

Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

前言

​重點提示​

1、KubeFate 1.5.0版本 目前不支援Mac系統
2、K8S不支援在虛拟機上 VMware Fusion 專業版 8.1.1運作      

不要按照這篇文章使用虛拟機安裝,但安裝步驟是正确的

​​使用MiniKube部署聯邦學習Fate的詳細過程-上篇​​

我親身實踐了好久 都沒能在虛拟機Centos上跑起來
即使虛拟機配置6核10G都跑不起來
這是版本不相容導緻的
我開了一台阿裡雲伺服器8核16G記憶體100G的伺服器
20分鐘搞定      

​阿裡雲伺服器​

Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇
因為我是臨時使用 是以開了一個按流量付費的伺服器
大家也可以根據自己的情況開一周的或一個月的      

部署Docker

上篇文章 具體說過(安裝最新版本的docker和異常處理方式)
這裡簡單介紹下如何安裝指定版本的docker      

​檢視伺服器支援的docker版本​

yum list docker-ce --showduplicates | sort -r      
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

​安裝指定版本​

不要超過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啟動成功的狀态​

Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

​啟用ingress服務​

minikube addons enable ingress      
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

部署KubeFATE服務

​解壓kubefate壓縮包​

tar -xzf ./kubefate-k8s-1.5.0.tar.gz      

​檢視檔案情況​

Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

​配置minikube​

chmod +x ./kubefate && sudo mv ./kubefate /usr/bin      

​檢視minikube版本号​

kubefate version      
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

​下載下傳鏡像依賴包​

docker load < ./kubefate-v1.2.0.docker      

​建立 kube-fate 的命名空間以及賬号​

Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

​使用網易雲鏡像倉庫​

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      
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

KubeFATE 的服務就已經部署好并正常運作

​添加 kubefate.net 到 hosts 檔案​

# 在雲伺服器上執行

sudo -- sh -c "echo \"47.117.116.243 kubefate.net\"  >> /etc/hosts"      

​驗證是否生效​

ping -c 2 kubefate.net      
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

​檢視KubeFATE 服務版本​

kubefate version      
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

使用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
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇
  • fate-10000.yaml
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

192.168.100.123需要替換成你的MiniKube 機器位址

​安裝fate叢集​

kubefate cluster install -f ./fate-9999.yaml
kubefate cluster install -f ./fate-10000.yaml       
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

KubeFATE 會建立兩個任務去分别部署兩個FATE叢集

​檢視任務狀态​

cd /home/k8s
watch kubefate cluster ls      
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

這個步驟需要到網易雲鏡像倉庫去下載下傳約 10GB 的鏡像

驗證FATE的部署

​通路叢集​

kubefate cluster describe b1865111-4a7d-4159-aeb9-4c482262517c      
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇
Kubernetes運作位元組聯邦學習開源架構KubeFate1.5.3版本-中篇

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開源架構實作原理及運作流程簡介