教程:在 Visual Studio 上使用 Bridge to Kubernetes 在本地运行和调试

说明

Bridge to Kubernetes 将于 2025 年 4 月 30 日停用。 有关停用和开源替代项的详细信息,请参阅 GitHub 问题

本教程介绍如何在 Kubernetes 群集与开发计算机之间重定向流量。 本教程使用 Bridge to Kubernetes 和 Visual Studio 调试服务。 若要使用 Visual Studio Code,请参阅通过 VS Code,使用 Bridge to Kubernetes 在本地运行和调试

若要详细了解 Bridge to Kubernetes,请参阅 Bridge to Kubernetes 的工作原理

本教程介绍如何:

  • 使用 Bridge to Kubernetes 连接到群集。
  • 将请求路由到本地运行的服务以进行开发。
  • 在本地计算机上调试正在运行的服务。

先决条件

设置一个服务

本教程使用 Bridge to Kubernetes 在任何 Kubernetes 群集上处理简单的 todo 示例应用程序。

示例应用程序具有一个前端来交互,以及一个提供持久存储的后端。

  1. 打开 Bash 窗口并检查群集是否可用且已准备就绪。 然后将上下文设置为该群集。

    kubectl cluster-info
    kubectl config use-context <kubernetes-cluster>
    
  2. 克隆示例存储库。

    git clone https://github.com/hsubramanianaks/b2k-samples
    
  3. 将目录更改为 todo-app,然后为示例创建命名空间。

    kubectl create namespace todo-app
    
  4. 应用部署清单:

    kubectl apply -n todo-app -f deployment.yaml
    

    此简单部署使用 LoadBalancer 类型的服务公开前端。 等待所有 pod 都处于运行状态,以及 frontend 服务的外部 IP 变为可用。

    如果要使用 MiniKube 进行测试,请使用 minikube tunnel 解析外部 IP。 如果使用 AKS 或其他基于云的 Kubernetes 提供程序,则会自动分配外部 IP。

  5. 使用以下命令监视 frontend 服务,直到服务启动并运行:

    kubectl get service -n todo-app frontend --watch
    
    NAME       TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)        AGE
    frontend   LoadBalancer   10.0.245.78   10.73.226.228   80:31910/TCP   6m26s
    

连接到群集

  1. 打开 Visual Studio。 在“开始”窗口中,选择“继续但无需代码”

  2. 选择 打开>项目/解决方案,找到 todo-app\database-api\databaseApi.csproj 项目,然后选择 打开

  3. 在项目中,从启动设置中选择 Bridge to Kubernetes,如下所示:

    屏幕截图显示了调试工具,其中选择了 Bridge to Kubernetes。

  4. 选择 Bridge to Kubernetes旁边的“开始”按钮。 在“为 Bridge to Kubernetes 创建配置文件 对话框中,输入以下值:

    • 选择群集名称。
    • 选择“todo-app”作为命名空间
    • 选择“database-api”作为要重定向到的“服务”
    • 选择之前用于启动浏览器的同一 URL。

    屏幕截图显示了“Bridge to Kubernetes”的“创建配置文件”对话框,其中输入了值。

  5. 如果要运行隔离,请选择 启用路由隔离。 如果启用路由隔离,则使用群集的其他人不会受到更改的影响。 隔离模式会将您的请求路由到每个受影响服务的专属副本。 它通常会路由其他流量。 有关详细信息,请参阅 Bridge to Kubernetes 工作原理

  6. 选择“保存和调试”以保存更改

    屏幕截图显示了调试时显示的待办事项服务,带有任务条目框。

    注意

    EndpointManager 会提示你允许对主机文件使用提升的权限

    您的开发计算机连接到群集。 状态栏显示已连接到 database-api 服务。

    屏幕截图显示了验证开发计算机是否已连接的状态栏。

  7. 尝试输入任务并将其标记为已完成。

  8. 选择 调试>停止调试 以停止调试。 此操作的快捷方式是 Shift+F5 或使用工具栏中的 停止调试 按钮。

Bridge to Kubernetes 会重定向 database-api 服务的所有流量。 它会重定向到开发计算机上的应用程序版本。 Bridge to Kubernetes 还会将应用程序的所有外部流量路由回 Kubernetes 群集。

默认情况下,停止调试任务也会断开开发计算机与 Kubernetes 群集的连接。 若要更改此行为,请选择 工具>选项,然后选择 Kubernetes 调试工具。 将“调试后断开连接”设置为 False

屏幕截图显示了 Kubernetes 调试工具中的“调试后断开连接”值。

更新此设置后,在停止和启动调试时,开发计算机将保持连接状态。 若要断开开发计算机与群集的连接,请单击工具栏上的“断开连接”按钮。

设置断点

在本节中,您将在服务中设置断点。

  1. 解决方案资源管理器中,选择 MongoHelper.cs 在编辑器中打开该文件。 如果未看到解决方案资源管理器,请选择“视图”>“解决方案资源管理器”

  2. CreateTask 方法正文的第一行上设置光标。 然后选择“调试”>“切换断点”以设置断点。

    屏幕截图显示了 CreateTask 方法,其中第一行设置了断点。

    此操作的快捷方式是 F9

  3. 选择 Bridge to Kubernetes旁边的“开始”按钮,如上一部分所示。 调试从之前输入的值开始。

  4. 在打开的浏览器中,在“todos”中输入值,然后选择 Enter。 代码到达输入的断点。 执行实际调试任务时,可以使用调试选项逐步检查代码。

  5. 选择 调试>停止调试 以停止调试。

  6. 若要删除断点,请选择该行,然后选择 调试>切换断点 或选择 F9

编辑启动配置文件

如果需要更改 Bridge to Kubernetes 连接到群集的方式,在本部分中,将编辑启动配置文件设置。

  1. 在 Visual Studio 命令栏中,单击“开始”按钮旁的箭头(绿色三角形或“播放”图标),打开下拉列表,然后单击 databaseApi 调试属性屏幕截图显示了 Bridge to Kubernetes 下拉菜单。

  2. 在“启动配置文件”对话框中,单击“为 Bridge to Kubernetes 编辑配置文件”链接屏幕截图显示“启动配置文件”对话框,其中包含一个链接用于编辑 Bridge to Kubernetes 配置文件

访问此屏幕的另一种方法:

  1. 右键单击解决方案资源管理器中的项目节点,然后选择 属性(或按 Alt +Enter)。

  2. 向下滚动到“调试”,然后选择“打开调试启动配置文件 UI”

清理资源

如果使用本教程的示例待办应用,可以使用 Azure 门户将其从群集中删除。 如果在本地克隆了该存储库,可以手动删除它。

后续步骤

若要详细了解 Bridge to Kubernetes,请参阅 Bridge to Kubernetes 工作原理

若要了解如何使用 Visual Studio Code 将开发计算机连接到群集,请参阅以下文章: