
paddlepaddle/cloudPaddlePaddle Cloud是一个面向云服务提供商和企业的分布式深度学习云平台。该平台以Kubernetes作为后端任务调度和集群资源管理中心,以PaddlePaddle作为深度学习框架,允许用户通过网页或命令行工具远程提交深度学习训练任务,充分利用大规模GPU集群的计算能力。
详细说明请参见此处
bash# 克隆代码仓库 git clone [***] cd cloud/paddlecloud # 构建镜像 docker build -t [你的Docker仓库地址]/pcloud . # 推送到仓库,以便Kubernetes可以访问 docker push [你的Docker仓库地址]/pcloud
使用Kubernetes的volume挂载MySQL数据、证书文件和配置,k8s/文件夹中提供了使用hostpath挂载独立文件和配置的示例。
bashmkdir -p /home/pcloud/data/mysql mkdir -p /home/pcloud/data/certs
/home/pcloud/data/certs文件夹/home/pcloud/data/certs文件夹(若工作节点上没有,可在主节点找到)/home/pcloud/data/certs文件夹paddlecloud/settings.py文件到/home/pcloud/data文件夹spec.template.spec.containers[0].volumes中的hostPath以匹配你的数据文件夹spec.template.spec.nodeSelector.kubernetes.io/hostname的值,设置为数据文件夹所在的节点(可使用kubectl get nodes列出所有节点)ALLOWED_HOSTSDATACENTERS以指定后端存储,目前支持CephFS和HostPath。若使用HostPath模式(可结合NFS等共享文件系统),需按以下方式修改:pythonDATACENTERS = { "<你的数据中心名称>":{ "fstype": "hostpath", "host_path": "/home/pcloud/data/public/", "mount_path": "/pfs/%s/home/%s/" # 挂载路径格式: mount_path % (数据中心名, 用户名) } }
cloud_ingress.yaml,修改spec.rules[0].host为你的域名cloud_service.yaml使用NodePort若集群中没有MySQL,需先部署:
bash# 需先在yaml文件中填写nodeselector字段(节点的主机名或IP) kubectl create -f ./mysql_deployment.yaml kubectl create -f ./mysql_service.yaml
然后在settings.py中修改MySQL端点
bash# 需先在yaml文件中填写nodeselector字段(节点的主机名或IP) kubectl create -f k8s/cloud_deployment.yaml kubectl create -f k8s/cloud_service.yaml kubectl create -f k8s/cloud_ingress.yaml # (可选,若不需要Jupyter notebook可省略)
通过Kubernetes ingress IP地址或NodePort访问:
http://<ingress-ip-address>http://<任意节点IP地址>:<NodePort>可创建Kubernetes Job准备包含RecordIO文件的公共云数据集,需根据环境修改YAML文件中的<DATACENTER>(集群数据中心)和<MONITOR_ADDR>(Ceph监控地址):
bashkubectl create -f k8s/prepare_dataset.yaml
python>>> import ssl >>> ssl.OPENSSL_VERSION 'OpenSSL 1.0.2k 26 Jan 2017'
bashvirtualenv paddlecloudenv # 激活虚拟环境 source paddlecloudenv/bin/activate
bashcd paddlecloud npm install pip install -r requirements.txt ./manage.py migrate ./manage.py loaddata sites npm run dev
bash./manage.py runserver
若要使用mail命令发送确认邮件,修改以下设置:
pythonEMAIL_BACKEND = 'django_sendmail_backend.backends.EmailBackend'
使用mail命令时可能需要为Pod启用hostNetwork。
或使用Django SMTP绑定,详见Django邮件文档


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务