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

在本教程中,你将了解如何重定向 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/Azure/Bridge-To-Kubernetes
    
  3. 将目录更改为 samples/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. 选择“打开”>“项目/解决方案”,然后找到 samples\todo-app\database-api\databaseApi.csproj 项目并选择“打开”。

  3. 在该项目中,从启动设置中选择“Bridge to Kubernetes”,如此处所示:

    Screenshot shows debugging tools with Bridge to Kubernetes selected.

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

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

    Screenshot shows the Create profile for Bridge to Kubernetes dialog box with the values entered.

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

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

    Screenshot shows the todo service displayed from your debugging, with an entry box for tasks.

    注意

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

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

    Screenshot shows the status bar that verifies that your development computer is connected.

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

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

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

注意

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

Screenshot shows the Disconnect After Debugging value in the Kubernetes Debugging Tools.

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

设置断点

在此部分中,你会在服务中设置断点。

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

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

    Screenshot shows the CreateTask method with a breakpoint set in the first line.

    此操作的快捷方式为 F9。

  3. 选择 Bridge to Kubernetes 旁边的启动按钮,如上一部分所示。 调试会使用前面输入的值启动。

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

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

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

编辑启动配置文件

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

  1. 单击“Bridge to Kubernetes”按钮旁边的箭头,然后单击“databaseApi 调试属性”。 Screenshot shows the Bridge to Kubernetes drop down menu.

  2. 在“启动配置文件”对话框中,单击“为 Bridge to Kubernetes 编辑配置文件”链接。 Screenshot shows Launch Profiles dialog with a link to edit the Bridge to Kubernetes profile

清理资源

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

后续步骤

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

有关支持的功能以及 Bridge to Kubernetes 的路线图的信息,请参阅 Bridge to Kubernetes 路线图

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