VSCode 连接到 Jupyter 容器内
支持用户在创建 Jupyter 作业后,通过 VSCode 直接连接到容器环境,便于利用 VSCode 的代码补全、调试功能以及丰富的插件生态,从而提升开发效率与用户体验。
VSCode 连接到 Jupyter 容器内
支持用户在创建 Jupyter 作业后,通过 VSCode 直接连接到容器环境,便于利用 VSCode 的代码补全、调试功能以及丰富的插件生态,从而提升开发效率与用户体验。
确保本机已生成公私钥
在开始之前需要确保在本机已生成公私钥文件,通常存储在C:\Users\<用户名>\.ssh或 ~/.ssh目录下,如:
C:\Users\<用户名>\.ssh\id_rsa
C:\Users\<用户名>\.ssh\id_rsa.pub
~/.ssh/id_rsa
~/.ssh/id_rsa.pub若未生成可以通过如下类似命令生成:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"创建 Jupyter 作业
用户创建 Jupyter 作业,具体创建方法可参考详见 交互式作业,示例作业如下:

点击“交互式页面”跳转到 Jupyter Notebook

容器内安装 SSHD
SSHD(SSH Daemon):SSHD 是 SSH 服务的守护进程,负责监听指定端口上的 SSH 连接请求并提供相应的服务。安装和运行 SSHD 可以使容器能够通过 SSH 协议进行远程访问。
安装 OpenSSH Server
sudo apt update
sudo apt install -y openssh-server验证 SSH 服务是否正常启动
可以运行以下命令,手动检查 sshd 是否已安装:
ps -ef | grep sshd也可以使用 service 命令检查和管理 SSHD 的运行状态:
使用 service 命令重启 ssh 服务
sudo service ssh restart检查状态
sudo service ssh status参考输出如下:
(base) liuxw24@jupyter-liuxw24-6838a-default0-0:~$ sudo service ssh restart
* Restarting OpenBSD Secure Shell server sshd [ OK ]
(base) liuxw24@jupyter-liuxw24-6838a-default0-0:~$ sudo service ssh status
* sshd is running确认 22 端口正常监听
使用以下命令确认 22 端口是否在监听:
sudo netstat -tuln | grep 22如果一切正常,sshd 服务将会在指定端口监听并接受连接。
配置 SSH 免密登录
可使用 authorized_keys 配置免密登录,上传公钥(通常是 id_rsa.pub)到服务器(在“确保本机已生成公私钥”章节中已阐述)。
- 若
.ssh文件夹不存在,可执行以下命令创建.ssh文件夹,并设置适当的权限:
mkdir ~/.ssh
chmod 700 ~/.ssh- 将本机公钥添加到
~/.ssh/authorized_keys文件
# 将本机 id_rsa.pub 文件内容复制到 ~/.ssh/authorized_keys
vim ~/.ssh/authorized_keys
# 为 authorized_keys 设置适当权限
chmod 600 ~/.ssh/authorized_keys设置 NodePort 规则
可通过设置外部访问规则中的 NodePort 规则 暴露服务端口,并使用 NodePort 端口在 VSCode 中连接到 Jupyter 容器内。
NodePort 规则允许用户通过集群节点的 IP 地址和指定的端口号进行访问。如果您希望通过 SSH 连接到集群中的某个节点,Kubernetes 会为该服务分配一个端口,您可以通过该端口号从外部进行连接。
在 Jupyter 作业详情页创建 NodePort 规则,详细创建流程介绍参见 设置 NodePort 访问规则。

字段说明:
-
容器端口号 (
containerPort): 选择 22 端口,用于 SSH 服务。 -
集群节点地址(
address): 集群任一节点的 IP 地址,此处为192.168.5.30。 -
所分配的 NodePort 端口(
nodePort): Kubernetes 会自动从端口范围 30000 到 32767 中为服务分配一个端口号,此处为32310。
VSCode 配置
安装 Remote-SSH 扩展
VSCode 中要安装 Remote-SSH 扩展,见下:

配置 Remote.SSH Config 文件
在设置中指定 Remote.SSH Config 文件的路径:

config 文件参考配置如下:
Host 192.168.5.30
HostName 192.168.5.30
LogLevel verbose
IdentityFile C:\Users\lxw\.ssh\id_rsa
Port 32310
User liuxw24各字段解释如下:
Host:Host IP,参见 NodePort 规则中的Host IP,本示例中为192.168.5.30IdentityFile:指定私钥文件的访问路径Port:要连接的端口号,参见 NodePort 规则中的NodePort 端口号,本示例中为32310User:用户名
配置完成后即可成功通过 NodePort 在 VSCode 中连接到 Jupyter 容器内:
