Skip to content

Latest commit

 

History

History
20 lines (12 loc) · 2.78 KB

02.deploy polyaxon.md

File metadata and controls

20 lines (12 loc) · 2.78 KB
  • 听名字就知道这个 polyaxon 好厉害的样子。摘抄一段官方简介。Polyaxon - 一个大规模可重复机器学习的开源平台。欢迎来到 Polyaxon,这是一个用于构建,训练和监控大规模深度学习应用的平台。Polyaxon 能部署到任何数据中心,云提供商,或者可以由 Polyaxon 托管和管理,它支持所有主流的深度学习框架,如 Tensorflow,MXNet,Caffe,Torch 等。Polyaxon 通过智能化的容器和节点管理来协调工作负载,使得开发深度学习应用变得更快,更容易,更高效。它将 GPU 服务器转变为团队或组织中的共享型自助服务资源。

  • 熟悉了之后部署这个也很容易,简单说就是需要先部署好k8s,然后安装helm,然后使用helm来安装polyaxon。

    1. 安装helm

curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash && kubectl --namespace kube-system create sa tiller && kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller && helm init --service-account tiller --tiller-namespace kube-system

    1. 使用 helm 安装 polyaxon

kubectl create namespace polyaxon && helm repo add polyaxon https://charts.polyaxon.com && helm repo update && helm install polyaxon/polyaxon --name=polyaxon --namespace=polyaxon

系统会自动输出后续执行的指令,照做即可。

export POLYAXON_IP=$(kubectl get svc --namespace polyaxon polyaxon-polyaxon-ingress -o jsonpath='{.status.loadBalancer.ingress[0].ip}') export POLYAXON_HTTP_PORT=80 export POLYAXON_WS_PORT=80 echo http://$POLYAXON_IP:$POLYAXON_HTTP_PORT

  • 我通过多次部署测试(别问为什么多次,遇到了很多问题),发现上面输出的那个获取 IP 的指令(export POLYAXON_IP=$(kubectl get svc --namespace polyaxon polyaxon-polyaxon-ingress -o jsonpath='{.status.loadBalancer.ingress[0].ip}'))似乎有问题。搜索路径 jsonpath 中的 .status.loadBalancer.ingress[0].ip 永远都是空值,不论采用默认属性(使用 ingress)还是禁止 ingress 都没用。搜索了一下,作者引用了一个 stackoverflow 的帖子,该帖子声称是 kubeadm 使用 CNI 网络插件,该插件不支持 ingress 控制器使用的 hostPort。作者成功甩锅给 k8s 团队,6666. 来源在这里 polyaxon/polyaxon#48 。如果这里得不到 POLYAXON_IP 这个变量的话,后面执行指令会提示找不到 host,所以我建议将该条修改为 export POLYAXON_IP=$(kubectl get svc --namespace polyaxon polyaxon-polyaxon-ingress -o jsonpath='{.spec.clusterIP}'),直接把 Master 节点的内部 IP 给它,目前单点 Master 的环境下运行良好,但是以后多点 Master 的话考虑到负载均衡肯定不能写死 IP,到时候怎么解决再说吧。