RubyMine 2025.3 Help

在 Kubernetes 中进行调试

RubyMine 支持以下 Kubernetes 调试流程:使用临时容器对 Pod 进行即时故障排除以及使用 Telepresence 进行远程调试,因此您无需离开您的 IDE 即可诊断各种问题。

临时容器

RubyMine 支持将 临时容器 附加到正在运行的 Pod,而无需重启。 这样,您可以检查实时的 Kubernetes 环境,运行诊断命令,并在正在运行的 Pod 内直接调查问题。

临时容器会为调试目的临时添加到现有 Pod 中,并与您的应用容器并行运行。 为此,RubyMine 会在幕后运行 kubectl debug 命令。 您可以附加自定义调试容器,或使用轻量级的 BusyBox 镜像,其开箱即用地提供 pingnetstatwgettop 等常用工具。

有关调试正在运行的 Pod 的更多详情,请参阅 Kubernetes 文档

将 BusyBox 附加到正在运行的 Pod

  1. 打开 服務工具窗口:选择 视图(V) | 工具窗口(T) | 服务 或按 Alt+8

  2. 展开列出正在运行的 Pod 的节点,右键单击要调试的 Pod,然后在上下文菜单中选择 临时调试容器 | 附加Busybox

    或者,选择所需的 Pod,单击工具栏上的 临时容器图标 ,并在下拉列表中选择 附加Busybox

    附加 BusyBox

将自定义容器附加到正在运行的 Pod

  1. 打开 服務工具窗口:选择 视图(V) | 工具窗口(T) | 服务 或按 Alt+8

  2. 展开列出正在运行的 Pod 的节点,右键单击要调试的 Pod,然后在上下文菜单中选择 临时调试容器 | 自定义附加

    或者,选择所需的 Pod,单击工具栏上的 临时容器图标 ,并在下拉列表中选择 自定义附加

  3. 附加自定义调试容器 对话框中,使用以下字段自定义用于启动并附加临时容器的 kubectl debug 命令:

    • Pod :从下拉列表中选择您要调试的 Pod。

    • 目标 :指定所选 Pod 内的目标容器。

    • 镜像 :开始键入用于调试的镜像名称,然后从建议列表中选择它。

    • 可执行文件 :指定在临时容器启动后在其中运行的 Shell 的绝对路径(例如,BusyBox 使用 /bin/sh ,或 Ubuntu 使用 /bin/bash)。

    • 选项 :为调试容器提供其他配置参数。 示例请参阅 Kubernetes 文档

    附加自定义调试容器对话框
  4. 点击 附加到Pod

当 RubyMine 启动新的临时容器并成功将其附加到 Pod 时,会打开 Console 选项卡,您可以在其中运行命令并检查该 Pod。

调试控制台

如果您 附加 BusyBox ,RubyMine 会自动使用 sh。 对于 自定义镜像, IDE 使用 可执行文件 字段中指定的 Shell。

当您删除其所附加的 Pod 时,该容器将被移除。

最近的命令

通过 临时调试容器 菜单附加临时容器时,RubyMine 会自动保存相应的 kubectl debug 命令。 稍后您可以在 最近 部分访问并重新运行它。

最近的命令

使用最近命令启动临时容器

  1. 打开 服務工具窗口:选择 视图(V) | 工具窗口(T) | 服务 或按 Alt+8

  2. 展开列出正在运行的 Pod 的节点,并右键单击要调试的 Pod。 在上下文菜单中选择 临时调试容器 以及所需的最近命令。

    或者,选择所需的 Pod,单击工具栏上的 临时容器图标 ,并在下拉列表中选择该最近命令。

管理最近命令

  1. 访问最近命令:

    • 设置 对话框(Ctrl+Alt+S )中,选择 构建、执行、部署 | Kubernetes

    • 打开 服务 工具窗口 (Alt+8)。 右键单击任意正在运行的 Pod,并在上下文菜单中选择 临时调试容器 | 编辑最近项

  2. 导航到 临时调试容器 部分。

    • 要添加可预先配置并快速启动新临时容器的新命令,请单击 加号图标。 在 添加调试参数 对话框中,您可以为 kubectl debug 命令指定镜像、可执行文件和选项。

    • 要从最近中移除命令,请在表格中选择它并单击 “Minus” 图标

    • 要编辑现有命令,请在表格中选择它并单击 编辑图标。 在 添加调试参数 对话框中,更改 kubectl debug 命令的镜像、可执行文件和选项。

Telepresence

Telepresence 是一款工具,它让您访问 Kubernetes 集群中的服务,对其进行调试、进行更改并测试,就像这些服务在您的计算机上本地运行一样。

Kubernetes 插件提供对 Telepresence 的集成,使您能够:

连接到 Telepresence

  1. 打开 服務工具窗口:选择 视图(V) | 工具窗口(T) | 服务 或按 Alt+8

  2. 右键点击您的 Kubernetes 集群并选择 连接Telepresence。 或者点击工具栏中的 Telepresence 图标。 当系统提示时,请输入管理员帐户密码以启动 Telepresence 守护程序。 在 Windows 上,允许执行 telepresence.exe

  3. 安装 Telepresence 和 Traffic Manager 后,再次点击 连接Telepresence

现在,您可以通过其 DNS 名称访问 Kubernetes 集群中的服务,就像该集群在您的工作站上运行一样。 例如,如果您有一个应用接受来自 hello-node:9001 的请求,便可通过其名称访问。

Telepresence 连接

拦截来自集群的流量

拦截操作可将发送至 Kubernetes 集群中某服务的流量路由至本地服务。

  1. 在工具栏中,点击 Telepresence 图标创建新拦截 ),然后点击 创建新拦截

  2. 在打开的窗口中,在 服务 列表中选择一个要拦截的工作负载。 此工作负载可以是 Deployment、ReplicaSet 或 StatefulSet。

    端口 字段中,指定您的服务的本地实例运行的端口。

    Telepresence 拦截

如果服务成功被拦截,您即可在本地访问,并使用 IDE 功能对运行于集群中的应用进行试验、调试和分析。

退出 Telepresence

Telepresence 每次仅与一个集群交互,因此连接其他集群前可能需要先停止当前连接。 退出 Telepresence 将停止所有活动拦截。

  1. 打开 服務工具窗口:选择 视图(V) | 工具窗口(T) | 服务 或按 Alt+8

  2. 右键点击您的 Kubernetes 集群并选择 退出Telepresence。 或者点击工具栏中的 退出 Telepresence 图标

最后修改日期: 2025年 12月 5日