K8s+pycharm配置炼丹

基于学校的K8s平台,在本地 PyCharm IDE 上使用远程服务器的 Python 解释器和环境进行调试和运行。

准备工作

K8s平台账号
Pycharm专业版

远程服务器

创建容器

登录学校的K8s系统平台,点击左侧导航栏中的机器学习容器管理创建容器

创建容器

按照要求填写方框中内容,完成后点击创建容器
注:

  • 镜像可以选择平台公开的三个镜像,也可以在镜像市场中搜索同学上传过得镜像。
  • 数据卷默认选择GPFS共享卷,容器内部路径设置为/data。
  • 填写好数据卷后一定记得点一下蓝色➕进行数据挂载。

端口映射

创建完容器后,我们需要对容器端口进行映射,点击左侧导航栏中的机器学习校园访问创建端口映射

创建端口映射

按照要求填写方框中内容,完成后点击创建
注:

  • 名称一般命名为容器名-ssh。
  • 在容器一栏选择刚刚所创建的容器。
  • 记录下校园IP校园端口,在pycharm配置中会用到

本地

安装pycharm专业版

  • 在Pycharm官网下载Pycharm专业版并安装。
  • Pycharm专业版为收费软件,可以用学校邮箱激活免费用1年,到期后可以再续,具体教程可自行百度。

配置解释器

打开Pycharm专业版中项目解释器配置框

  • MAC:点击上方导航栏中PyCharmPreferencesProject:项目名Project interpreter
  • Windows:点击上方导航栏中FileSettingsProject:项目名Project interpreter
    mac中窗口

点击图中右上角红框中的按钮,选择AddSSH interpreter

  • Host填写之前记录的校园IP,port填写校园端口
  • Username填写root

点击Next


  • Password为容器密码,默认1234

点击Next


  • Interpreter填写Python所在路径,可在K8s平台中容器管理,点击容器详情,在容器内命令行界面输入以下代码查看
whereis python
  • Sync folders为文件夹映射路径,点开后左边选择所要上传项目所在路径,右边点开在服务器上挂载数据卷的文件路径(/data),在该路径下创建自己的文件夹(例如wwb),选择映射数据到该文件夹路径(即/data/wwb)。
  • Automatically upload project files to the server选项可以不勾选,勾选后会自动上传项目文件夹的所有内容

配置完成后,应用所配置的远程解释器

数据显示

  • 点击上方导航栏中ToolsDeploymentConfiguration,会出现刚刚配置过的解释器的SFTP,将其中ConnectionRoot Path改为映射在远程服务器上自己存放数据的路径(即/data/wwb)。
  • 点击ToolsDeploymentBrowse Remote Host,会在右侧出现Remote Host,点击下方小箭头,选择刚刚配置的SFTP,即可看到在远程服务器端我们存放的数据。

运行,上传,下载

  • 点击本地的py文件,右键点击run即可。直接run对远程服务器上的py文件会报错。
  • 每次本地文件进行更改后,都要右击该文件,点击DeploymentUpload to,选择自己的server对更改后的文件进行上传,否则run的时候服务器运行的还是没有更改的旧文件。不能直接对远程文件进行修改,会报错。
  • 上传的时候可以上传单个文件,也可以上传整个文件夹,但是注意空文件夹无法直接上传。可以直接在Remote Host所需创建文件夹的路径下右击,点击New创建。
  • 通过运行代码保存的文件会保存在服务器端,需要右击该文件,点击Download from here下载到本地。如果在服务器端不显示,点击刷新按钮刷新目录。
  • 用matplotlib画图时,用plt.show()在远程服务器无法看到所画的图片,可以使用plt.savefig()将图片保存在远程服务器,再下载到本地。
  • 运行文件时,记得在run窗口查看是否用了远程解释器。如果没有使用,可以点击上部导航栏中运行按钮左侧的小箭头,点击Edit Configurations,查看Python interpreter是否选择了远程解释器。
  • 第一次应用解释器的时候需要更新,速度会很慢,耐心等待即可

错误及解决方案

  • CUDA out of memory
    解决方案:该错误为GPU显存不足。可以尝试减小代码参数,降低Batch Size大小或者换更大显存的GPU。

参考文献:
PyCharm+Docker:打造最舒适的深度学习炼丹炉

你可能感兴趣的:(K8s+pycharm配置炼丹)